梵蒂冈之花
您可以使用以下方法简洁地完成此任务itertools.product:import itertoolsimport stringfor elem in itertools.product(string.ascii_lowercase, repeat=5): ...以下是此方法生成的前 30 个值的示例:>>> values = itertools.product(string.ascii_lowercase, repeat=5)>>> print(list(itertools.islice(values, 30)))[ ('a', 'a', 'a', 'a', 'a'), ('a', 'a', 'a', 'a', 'b'), ('a', 'a', 'a', 'a', 'c'), # --Snip -- ('a', 'a', 'a', 'a', 'x'), ('a', 'a', 'a', 'a', 'y'), ('a', 'a', 'a', 'a', 'z'), ('a', 'a', 'a', 'b', 'a'), ('a', 'a', 'a', 'b', 'b'), ('a', 'a', 'a', 'b', 'c'), ('a', 'a', 'a', 'b', 'd')]请注意,此序列中有26**5 == 11881376一些值,因此您可能不希望将它们全部存储在列表中。在我的系统上,这样的列表大约占用 100 MiB。