<p><strong>升级版:</strong></p>
<p>首先,如果您想从这个字母表中获取所有可能的密码,您应该使用来自<code>itertools</code>模块的<code>product</code>函数,而不是{<cd3>}。在</p>
<p>另外,如果您想提高执行速度,您应该使用<code>multiprocessing</code>模块而不是<code>threading</code>。在</p>
<p>你可以通过这种方式实现你的目标,例如:</p>
<pre><code>from itertools import product, islice
from multiprocessing import Pool
def crack(list_of_tuples):
for letters in list_of_tuples:
password = ''.join(letters)
success = try_to_crack(password)
if success:
print('password is {}'.format(password))
break
tuples = product('abcdefghijklmnoprstuvyzwxq1234567890_', repeat=10)
size_of_slice = 5000
number_of_processes = 8
running = True
while running:
p = Pool(number_of_processes)
slices = []
for i in range(number_of_processes):
l = list(islice(tuples, size_of_slice))
if l:
slices.append(l)
else:
running = False
p.map(crack, slices)
</code></pre>
<p>另请参见<a href="https://stackoverflow.com/questions/3044580/multiprocessing-vs-threading-python">multiprocessing-vs-threading</a></p>
<p><strong>原始答案:</strong></p>
<p>不要创建列表,只需按原样使用:</p>
^{pr2}$