Дается список букв, поиск всех возможных слов в троичном дереве поиска
Я написал программу для поиска всех возможных слов со списком заданных букв в троичном дереве поиска. Вывод представляет собой отсортированный набор всех слов. Ниже приведен код Python для поиска слов:
def _find_words(self, node: Node, letters: str, buffer=''):
if node is None:
return
for c in letters:
if node.key < c:
self._find_words(node.high, letters, '')
elif node.key > c:
self._find_words(node.low, letters, '')
else:
buffer += node.key
if node.isEnd:
self.words.add(buffer)
self._find_words(node.equal,
letters.replace(node.key, '', 1), buffer)
Дерево содержит следующие слова: кошка, действия, акт, актер, в, ошибка, кошки, вверх, актеры, верхний
Я получаю следующий вывод для букв 'abugpscort':
['acts', 'cats', 'cat', 'act', 'bug', 'ors', 'up', 'or', 't']
тогда как вывод должен быть:
['actors', 'actor', 'acts', 'cats', 'cat', 'act', 'bug', 'up', 'at']
Как я могу это исправить?