code: def levenshtein_distance(self, a, b):
          '''This calculates the Levenshtein distance between a and b.
          '''
  
          n, m = len(a), len(b)
          if n > m:
              a,b = b,a
              n,m = m,n
          current = range(n+1)
          for i in range(1,m+1):
              previous, current = current, [i]+[0]*n
              for j in range(1,n+1):
                  add, delete = previous[j]+1, current[j-1]+1
                  change = previous[j-1]
                  if a[j-1] != b[i-1]:
                      change = change + 1
                  current[j] = min(add, delete, change)
          return current[nf levenshtein_distance(self, a, b):
          '''This calculates the Levenshtein distance between a and b.
          '''
  
          n, m = len(a), len(b)
          if n > m:
              a,b = b,a
              n,m = m,n
          current = range(n+1)
          for i in range(1,m+1):
              previous, current = current, [i]+[0]*n
              for j in range(1,n+1):
                  add, delete = previous[j]+1, current[j-1]+1
                  change = previous[j-1]
                  if a[j-1] != b[i-1]:
                      change = change + 1
                  current[j] = min(add, delete, change)
          return current[n]
docs: This calculates the Levenshtein distance between a and b.