from itertools import permutations
# словарь существующих слов
dictionary = [
'пена',
]
for im in permutations('енап', 4):
word = ''.join(im)
print(word, word in dictionary)
енап False
енпа False
еанп False
еапн False
епна False
епан False
неап False
непа False
наеп False
напе False
нпеа False
нпае False
аенп False
аепн False
анеп False
анпе False
апен False
апне False
пена True
пеан False
пнеа False
пнае False
паен False
пане False
Если у вас слова с существенно большим количеством букв - выполните обратное действие - напишите простую функцию проверки двух слов - что все буквы из одного слова содержатся в другом. Например такую:
def check_it(word1:str, word2:str) -> bool:
if len(word1) != len(word2):
return False
return sorted(word1) == sorted(word2)
for word in dictionary:
if check_it(word, 'енап'):
print(word)
Прочитайте ваш файл russians.txt отсюда
https://github.com/danakt/russian-words, и прогоните все слова через проверку утилитой.
На моем слабом ноуте эта проверка занимает 416 мс и выдает перечень слов из этого словаря:
епан
напе
пане
пеан
пена
Устраивает вам этот словарь или нет - решайте сами...