本文介绍如何用python生成字典输入指定字符和位数,生成一个密码字典
首先说简单的,一句话生成
for x in itertools.product('0123',repeat=4):print "".join(x)
是的就是这么简单
python的itertools库是一个 创建迭代器以实现高效循环的函数库(google翻译)
库中的product函数就实现了一个类似字典生成的方法,第一个参数是用作生成的字符,第二个参数是字符重复次数,也就是密码长度
需要详细了解这个库和这个函数的话是这里:
https://docs.python.org/2/library/itertools.html
下面说如何自己动手生成
首先分析下生成字典的规律
输入字符0123456789长度为四位,应该生成类似如下结果:
chars = '0123456789'
length = 4
result:
0000 0
0001 1
0002 2
....
1000
1001
1002
....
2121
....
3333
....
9999
可以看出生成一个数字0-9的字典类似数数,那么应该可以生成字典想象成一个十进制数加一然后补齐左边的0转换成字符串的过程
如果是字母和符号组成的去生成字典呢?可能如下
chars = 'abcd'
length = 4
result:
aaa