首页 > 公告栏 >

Python迭代器与嵌套for循环生成密码字典速度对比

江西合源信息技术是江西宜春市一家集开发/销售/运维/咨询/培训于一身的综合性信息技术服务公司。团队成员有着丰富的行业经验,帮助您的企业以低廉的技术成本,拥有一套更适用的

 

分别使用迭代器与嵌套for循环生成包含所有由数字组成的长度为8的密码字典,也就是从00000000到99999999。

 
 
使用迭代器生成密码字典

import time

t1 = time.time()

import itertools as its

iterator = its.product('0123456789', repeat=8)

f = open('pwd.txt', 'w')

for i in iterator:

    f.write(''.join(i)+' ')

f.close()

t2 = time.time()

print(t2-t1)

# 62.58520317077637

 

 
使用嵌套for循环生成密码字典

import time

t1 = time.time()

ls = '0123456789'

f = open('pwd.txt', 'w')

for i in ls:

    for j in ls:

        for k in ls:

            for x in ls:

                for y in ls:

                    for z in ls:

                        for m in ls:

                            for n in ls:

                                f.write(i+j+k+x+y+z+m+n+' ')

f.close()

t2 = time.time()

print(t2-t1)

# 80.10285377502441

 

总结

使用迭代器用时62.58秒,嵌套for循环用时80.10秒,
对比可见,用迭代器生成密码字典速度更快,且代码风格更加良好。生成的密码字典文件比较大哦。我这边生成的00000000到99999999的txt文件有800多M。