def DifferentByOne(word1, word2):
    if word1[0] != word2[0]:
        return word1[1:] == word2[1:]
same = True
for i in range(1, len(word1)):
    if word1[i] != word2[i]:
        if same:
            same = False
else:
    return False
return not same
Как я могу оптимизировать этот код Python для генерации всех слов с расстоянием до слова 1?