如何在每个顺序Python中创建字符集的每个置换

2024-09-30 05:24:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python非常陌生(昨天刚开始),我正在尝试创建字符集的排列,例如ascii_小写字母,以便在加密程序中使用。我目前使用的是:

...function definitions etc
while i <= num:
  for k in itertools.combinations_with_replacement(charset, i):
    nhash = str(''.join(k))
    fp.write(nhash + '\n')
    ...hashing code and other file I/O
  i += 1

给定字符集“abc”,它将给出:

^{pr2}$

它成功地命中了'aa';但是,它错过了'ba'和加密哈希算法ab!=巴。基本上我想找一个itertools.置换功能。在

有没有办法同时得到ba和bb?在


Tags: in程序forasciietcfunctionnumitertools
1条回答
网友
1楼 · 发布于 2024-09-30 05:24:15

似乎你需要itertools.product而不是{a2}

下面是itertools.product在

charset='ABC'
print '\n'.join(''.join(p) for i in xrange(1,len(charset)+1) 
                for p in itertools.product(charset, repeat=i))

A
B
C
AA
AB
AC
BA
BB
BC
CA

注意:如果需要使用值而不是打印它,则可以始终使用生成器

^{pr2}$

相关问题 更多 >

    热门问题