擅长:python、mysql、java
<p>您可以使用<a href="https://docs.python.org/3/library/itertools.html#itertools.product" rel="nofollow noreferrer">^{<cd1>}</a>简洁地实现这一点:</p>
<pre><code>import itertools
import string
for elem in itertools.product(string.ascii_lowercase, repeat=5):
...
</code></pre>
<p>以下是该方法产生的前30个值的示例:</p>
<pre><code>>>> 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')
]
</code></pre>
<p>请注意,此序列中有<code>26**5 == 11881376</code>个值,因此您可能不希望将它们全部存储在列表中。在我的系统中,这样的列表大约占用100个MiB</p>