Generating char combinations is extremely easy with Python’s itertools.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| import string
import itertools
def dict_gen_up_to_len(n):
chars = string.ascii_letters + string.digits + '!@#$%^&*()'
return itertools.chain(''.join(j) for i in range(n) for j in itertools.product(chars, repeat=i+1))
def dict_gen_exact_len(n):
chars = string.ascii_letters + string.digits + '!@#$%^&*()'
return itertools.chain(''.join(j) for j in itertools.product(chars, repeat=n))
n = 8
for word in dict_gen_exact_len(n):
print (word)
# aaaaaaaa
# aaaaaaab
# aaaaaaac
# ...
# ))))))))
for word in dict_gen_up_to_len(n):
print (word)
# a
# b
# c
# ...
# aa
# ab
|