Я написал функцию, которая возвращает список всех возможных «продуктов» строки с повторениями (для программы проверки орфографии):
def productRepeats(string):
comboList = []
for item in [p for p in product(string, repeat = len(list(string)))]:
if item not in comboList:
comboList.append("".join(item))
return list(set(comboList))
Поэтому, когда вводится print(productRepeats("PIP"))
,он выводит (мне все равно, в каком порядке):
['PII', 'IIP', 'PPI', 'IPI', 'IPP', 'PPP', 'PIP', 'III']
Однако, если я пытаюсь получить что-то больше 5 цифр (PIIIIP), вывод занимает около 30 секунд, даже если естьтолько 64 способа
Можно ли как-нибудь ускорить это, так как получение списка для строки 'GERAWUHGP', например, занимает более получаса?