首页 > 解决方案 > 在python中生成每个可能的字符串组合

问题描述

我是 python 新手,一直在尝试制作这个算法,但无法弄清楚。我怎样才能列出由 aZ 组成的每个可能的单词,这样它就像

a, b, c, d, e.... aa, ab, ac, ad... aaa, aab, aac...这样做的目的是将每个单词编码为 md5 哈希并重复此操作直到找到具有特定前缀的哈希码。

那么,我怎么能做到这一点呢?预先感谢您的帮助!

标签: python

解决方案


您可以使用itertools.product(因为您希望所有字母的笛卡尔积达到给定长度)和列表推导来迭代一个范围直至所需长度(在您的示例中为 4):

from string import ascii_lowercase
from itertools import product

n = 4
[''.join(i) for r in range(1,n) for i in product(ascii_lowercase, repeat=r)]

这使:

['a',
 'b',
 'c',
 'd',
 'e',
 'f',
 'g', 
 ...   
 'aa',
 'ab',
 'ac',
 'ad',
 'ae',
 'af',
 'ag',
 'ah',
 'ai',
 'aj',
  ...
 'zz',
 'aaa',
 'aab',
 'aac',
 'aad',
 'aae',
 'aaf',
 'aag',
  ...

推荐阅读