3 回答

TA貢獻(xiàn)1900條經(jīng)驗 獲得超5個贊
您可以使用以下方法簡潔地完成此任務(wù)itertools.product
:
import itertools
import string
for 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一些值,因此您可能不希望將它們?nèi)看鎯υ诹斜碇?。在我的系統(tǒng)上,這樣的列表大約占用 100 MiB。

TA貢獻(xiàn)1804條經(jīng)驗 獲得超3個贊
這是一個非?!盎尽钡睦樱?/p>
chars = 'abcdefghijklmnopqrstuvwxyz'
my_list = []
for c1 in chars:
for c2 in chars:
for c3 in chars:
for c4 in chars:
my_list.append(c1+c2+c3+c4)
print(my_list)

TA貢獻(xiàn)1863條經(jīng)驗 獲得超2個贊
知道你認(rèn)為什么是“神奇的”并不容易,但我沒有看到循環(huán)中的神奇之處。
這是一種變體:
cs = 'abcdefghijklmnopqrstuvwxyz'
list(map(''.join, [(a,b,c,d) for a in cs for b in cs for c in cs for d in cs]))
添加回答
舉報