Несколько бесконечный вывод в Python - PullRequest
0 голосов
/ 29 мая 2020

Я написал код Python, в котором я пытался содержать все возможные комбинации слов со значением или без значения, но он кажется несколько бесконечным [хотя и имеет ограничения]. Я имею в виду, используя буквы abcd ... wxyz для построения этих возможных слов, приводящих к более чем 10 миллиардам результатов. Можно ли запустить такой код, когда через некоторое время вы получите ожидаемый результат? Мне удалось создать свой собственный код, но он временно замедляет работу моего P C, поэтому я решил прекратить его работу, прежде чем он полностью выйдет из строя в моей ОС.

1 Ответ

0 голосов
/ 29 мая 2020

Использование itertools.product даст вам то, что вы хотите, и вы можете циклически перебирать многие, МНОГИЕ комбинации с любой скоростью, которую хотите. Вот пример того, как эффективно сгенерировать все комбинации:

import itertools
alphabet = "abcdefghijklmnopqrstuvwxyz"
length = 5
alphabets = [alphabet] * length
combos_generator = itertools.product(*alphabets)
print(len(list(combos_generator)))

Обратите внимание, что количество комбинаций будет 26 ^ num_letters, или, в данном случае, более 11 миллионов комбинаций всего для 5-буквенных слов (от aaaaa до zzzzz). Если вы действительно хотите получить к ним эффективный доступ, используйте доступ в стиле Interator:

for combo in combos_generator:
    <do something, output to file, etc>
    ...

Happy Coding!

...