> Use the levenshtein distance. Given the constraint that the two strings are the same length, I'm assuming (as other posters appear to have done) that "vary by only one character" precludes insertion and deletion operations.
In that case, the problem can be solved in O(n) time by a simple loop which counts the number of differences and notes the position of the first (if any) difference. Any full-distance Levenshtein method that does no pre-processing must take O(n**2) time. It is possible to take advantage of the fact that the OP doesn't care about what the distance is exactly if it is not 1; 0 is just as bad as 2, 3, 4, etc. In this case it is possible to achieve O(n) time [ref. Ukkonen]. However (a) one still needs to track where the difference arose (b) we are talking about extreme overkill for the OP's problem. -- http://mail.python.org/mailman/listinfo/python-list