(1) Я не понимаю "-1" в "len (word) -1" в вашем первом цикле.
(2) У вашего второго цикла есть несколько проблем:
Он не проверяет, совпадают ли буквы, он проверяет, находится ли каждая буква в анаграмме в слове.Вы не используете информацию счета, поэтому вы не можете различить Бок и книгу.Вы также удаляете из последовательности, которую вы повторяете, что приводит к неожиданному поведению.
С моей стороны, я бы просто использовал
sorted_anagram = sorted(anagram)
possibles = [word for word in wordlist if sorted(word) == sorted_anagram]
вместо явного для циклов.
Обратите внимание, что сортировка слов является своего рода процессом канонизации - он гарантирует, что любые два слова, которые являются анаграммами друг друга, будут в одном и том же формате.Другой подход, позволяющий определить, являются ли две вещи анаграммами, состоит в том, чтобы убедиться, что количество букв одинаково:
>>> from collections import Counter
>>> Counter('book')
Counter({'o': 2, 'k': 1, 'b': 1})
>>> Counter('obko')
Counter({'o': 2, 'k': 1, 'b': 1})
>>> Counter('bok')
Counter({'k': 1, 'b': 1, 'o': 1})
>>>
>>> Counter('book') == Counter('boko')
True
>>> Counter('book') == Counter('bok')
False