UPD:
First of all, you should use product
function from itertools
module instead of permutations
if you want to get all possible passwords from this alphabet.
Also, if you want to increase speed of execution, you should use multiprocessing
module instead of threading
.
You may achieve your goal this way, for example:
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)
See also multiprocessing-vs-threading
Original answer:
Don't create a list, just use it as it is:
permutations = itertools.permutations("abcdefghijklmnoprstuvyzwxq1234567890_", 10)
for permutation in permutations:
password = ''.join(permutation)
success = try_to_crack(password)
if success:
print('password is {}'.format(password))
break