python打印索引序号_python – 如何打印密码组合(但每个索引都有自定义约束)

我正在尝试构建一个动态密码恢复工具.您可以指定密码和与未知密码索引对应的未知字符列表.所以,如果你记得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']

现在我需要打印:

Dude123

dude123

8ude123

Dvde123

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']

标签:python,loops,passwords,combinations,string

来源: https://codeday.me/bug/20190630/1338694.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python是一种面向对象的高级编程语言,在列表操作方面非常灵活和方便。遍历列表是基本的操作之一,在遍历时需要打印每个元素及其对应的索引号,下面我们来详细讲解一下具体的操作。 首先,我们需要先创建一个列表,以便后续对其进行遍历操作。创建列表的方式非常简单,只需要使用方括号“[]”将要存储的数据按照顺序放入即可,例如: my_list = [0, 1, 2, 3, 4] 这里我们创建了一个包括从0到4的5个元素的列表。 接着,我们需要使用for循环来遍历列表,for语句后面跟上列表的名称,使用enumerate()函数来获取元素的索引号: for index, value in enumerate(my_list): print("序号为" + str(index) + "的元素为:" + str(value)) 这里的enumerate()函数可以将一个列表转化为一个索引序列,同时配合着for循环和变量,我们就可以访问列表的每个元素及其对应的索引号了。在print函数中,我们使用字符串连接符“+”将序号和元素的字符串拼接在一起,最终打印每个元素及其对应的索引号。 如果希望对于每个元素单独打印,而非用字符串拼接,也可以使用如下方式: for index, value in enumerate(my_list): print("序号为%d的元素为:%d" % (index, value)) 在这个例子中,我们使用了字符串格式化符号“%d”将要打印的元素类型指定为整型,并使用了“%”运算符将元素的值插入到相应的位置。通过这种方式,我们也可以轻松地遍历列表并打印每个元素及其对应的索引号。 总结一下,遍历列表并打印每个元素及其对应的索引号是很简单的,通过使用for循环和enumerate()函数可以轻松地访问每个元素及其索引,同时通过使用字符串拼接或格式化的方式打印出来。这在程序开发、数据处理等领域都是非常实用的操作之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值