title: difflib cannot correctly find the opcodes
body: <p>I faced with a very odd issue in difflib library in python. I have two strings as follows and I run <code>get_opcodes</code> on them like this:</p>
  
  <pre><code>import difflib
  
  str1 = "MatrixElement(MatrixSymbol('Btd', Integer(11), Integer(11)), Integer(0), Integer(9))), Mul(Float('1.0', precision=24), MatrixElement(MatrixSymbol('Btd', Integer(11), Integer(11)), Integer(0), Integer(10))))"
  str2 = "MatrixElement(MatrixSymbol('Btd', Integer(11), Integer(11)), Integer(1), Integer(9))), Mul(Float('1.0', precision=24), MatrixElement(MatrixSymbol('Btd', Integer(11), Integer(11)), Integer(1), Integer(10))))"
  difflib.SequenceMatcher(None, str1,str2).get_opcodes()
  </code></pre>
  
  <p>Only in this specific example, the output of the diff is like the following, which is obviously wrong.</p>
  
  <pre><code>[('equal', 0, 69, 0, 69),
   ('replace', 69, 70, 69, 70),
   ('equal', 70, 188, 70, 188),
   ('insert', 188, 188, 188, 201),
   ('equal', 188, 190, 201, 203),
   ('replace', 190, 206, 203, 206)]
  </code></pre>
  
  <p>The correct output should not contain <code>insert</code> opcode, as nothing new is added.</p>
  
  <p>Is this potentially a bug in difflib?</p>