如何打印密码组合但每个索引都有自定义约束

问题描述

| 我正在尝试构建动态密码恢复工具。您可以指定密码以及与未知密码索引相对应的未知字符列表。因此,如果您记住90%的密码,并且不记得几个字母,这将为您带来轻巧的暴力。 我可以将用户提供的密码与未知字符列表结合使用;但是,我一直试图打印每个潜在的密码。 我被困在这里:
password = \'Dude123\'
charList = [\'d8\',\'vV\',\'\',\'D8\',\'\']
finalString = [\'\'.join(set((a,b))) for a,b in zip(password,charList)] 

print(finalString) #This statement yields the following
[\'Dd8\',\'uv^\',\'d\',\'eD8\',\'1\',\'2\',\'3\']
现在我需要打印: 杜德123 dude123 8ude123 DVD123 dvde123 8vde123 ... 或某种效果(它没有以任何特定顺序遍历字符,我只需要列出所有可能的组合即可。 感谢您的任何帮助! 戴夫     

解决方法

        你的意思是这样吗?
>>> import itertools
>>> 
>>> password = \'Dude123\' 
>>> charList = [\'d8\',\'vV\',\'\',\'D8\',\'\'] 
>>> 
>>> finalString = [\'\'.join(set((a,b))) for a,b in zip(password,charList)] 
>>> 
>>> possibles = list(\'\'.join(poss) for poss in itertools.product(*finalString))
>>> possibles
[\'Dude123\',\'DudD123\',\'Dud8123\',\'Dvde123\',\'DvdD123\',\'Dvd8123\',\'DVde123\',\'DVdD123\',\'DVd8123\',\'dude123\',\'dudD123\',\'dud8123\',\'dvde123\',\'dvdD123\',\'dvd8123\',\'dVde123\',\'dVdD123\',\'dVd8123\',\'8ude123\',\'8udD123\',\'8ud8123\',\'8vde123\',\'8vdD123\',\'8vd8123\',\'8Vde123\',\'8VdD123\',\'8Vd8123\']
    

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...