title: Levenshtein distance in python giving only 1 as edit distance
body: <p>I have a python program to read two lists (one with errors and other with correct data). Every element in my list with error needs to be compared with every element in my correct list. After comparing i get all the edit distance between every compared pair. now i can find the least edit distance for the given error data and thru get my correct data.</p>
  
  <p>I am trying to use levenshtein distance to calculate the edit distance but its returning all edit distance as 1 even which is wrong.</p>
  
  <p>This means the code for calculating levenshtein distance is not correct. I am struggling to find a fix for this. HELP!</p>
  
  <p><strong>My Code</strong></p>
  
  <pre><code>import csv
  
  def lev(a, b):
      if not a: return len(b)
      if not b: return len(a)
      return min(lev(a[1:], b[1:])+(a[0] != b[0]), lev(a[1:], b)+1, lev(a, b[1:])+1)
  
  if __name__ == "__main__":
  
      with open("all_correct_promo.csv","rb") as file1:
          reader1 = csv.reader(file1)
          correctPromoList = list(reader1)
          #print correctPromoList
  
      with open("all_extracted_promo.csv","rb") as file2:
          reader2 = csv.reader(file2)
          extractedPromoList = list(reader2)
          #print extractedPromoList
  
      incorrectPromo = []
      count = 0
      for extracted in extractedPromoList:
          if(extracted not in correctPromoList):
              incorrectPromo.append(extracted)
          else:
              count = count + 1
      #print incorrectPromo
  
      for promos in incorrectPromo:
          for correctPromo in correctPromoList:
              distance = lev(promos,correctPromo)
              print promos, correctPromo , distance
  </code></pre>