import textwrap import difflib def onestepchange(start, dest): ret = "" for i, s in enumerate(difflib.ndiff(start, dest)): # print(i) # print(s) if s[0] == '-': return ret + start[i+1:] if s[1] == '+': return ret + s[-1] + start[i:] ret = ret + s[-1] if len(ret) > len(start): return ret if ret[i] != start[i]: return ret + start[i:] return ret def countsteps(start, dest): step_count = 0 while start != dest: start = onestepchange(start, dest) step_count += 1 return step_count