生成密码字典脚本报错:NameError: name 'permutations' is not defined
解决Python密码字典脚本中
permutations未定义的错误 嘿,这个错误其实很好搞定!你看到的NameError: name 'permutations' is not defined,本质是因为permutations并不是Python的内置函数——它藏在itertools这个标准库模块里,你的脚本没导入它,Python自然不知道这个名字指的是什么。
给你两种修复方案,选哪种都可以:
方案1:导入整个itertools模块
在脚本最开头加上导入语句,调用的时候带上模块名就行:
#!/usr/bin/python import itertools # 新增这行导入代码 # 定义已知的密码前缀 prefix = ['begin', 'Begin'] # 待遍历的序列列表 sequences = ['seq1', 'Seq1', 'SEQ1', 'se2', '!', '123', '555', '103', '_'] # 后续循环里改成这样调用 # for p in itertools.permutations(stuff, x):
方案2:直接导入permutations函数
如果你的脚本里只用到这个函数,直接导入它更省事,原来的循环代码不用改:
#!/usr/bin/python from itertools import permutations # 直接导入目标函数 # 定义已知的密码前缀 prefix = ['begin', 'Begin'] # 待遍历的序列列表 sequences = ['seq1', 'Seq1', 'SEQ1', 'se2', '!', '123', '555', '103', '_'] # 原来的循环代码保持不变即可 # for p in permutations(stuff, x):
小提醒:如果之后你还需要用itertools里的其他工具(比如生成组合的combinations),选方案1会更方便;要是只用到permutations,方案2的代码会更简洁。
内容的提问来源于stack exchange,提问作者user9714678
相关产品推荐
相关产品推荐

