python - 如何在Python中生成所有可能的5个字母数字的列表?

标签 python python-3.x

我知道如何在 python 中生成所有可能的 5 位数字,但我想知道如何生成所有可能的 5 个字母数字,如 1df52。我想不出生成所有可能的 5 个字母数字的方法,有人能指出我在这里可以做什么吗?

最佳答案

使用内置 itertools.product() function .

此外,您还可以使用string模块中的常量来找出其中有哪些数字和字母。 :)

import itertools
import string

keyspace = string.digits + string.ascii_lowercase

# (or `itertools.product(keyspace, repeat=5)`)
for combination in itertools.product(*[keyspace] * 5):  
    print(''.join(combination))

输出

00000
00001
00002
00003
[...]
032ne
032nf
032ng
[...]
11xbe
11xbf
11xbg
11xbh
11xbi
[...]

有点神秘的 itertools.product(*[keyspace] * 5) 构造与 itertools.product(keyspace, keyspace, keyspace, keyspace, keyspace) 相同 。 (我们的想法是,我们重复单项数组 [keyspace] 5 次以获得 [keyspace, keyspace, keyspace, keyspace, keyspace],然后将其解压为单独的使用 * splat 运算符的参数。

编辑:

要打印有多少种组合,您可以使用enumerate():

for num, combination in enumerate(itertools.product('abc', 'def', 'gh'), 1):  
    print(num, ''.join(combination))

输出

1 adg
2 adh
3 aeg
4 aeh
5 afg
6 afh
7 bdg
8 bdh
9 beg
10 beh
11 bfg
12 bfh
13 cdg
14 cdh
15 ceg
16 ceh
17 cfg
18 cfh

关于python - 如何在Python中生成所有可能的5个字母数字的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55727901/

相关文章:

python - 如何从 'pyspark.sql.types.Row' 获取所有列/属性名称?

python - Python中exit()和sys.exit()的区别

Python:Pygame 安装但运行不佳(如果有的话)。 (麦克,莫哈维)

python-3.x - MovieWriter (ffmpeg) 不可用 PyCharm (Windows)

javascript - Django:Jquery 单击功能在 Ajax 中不起作用

python - 将数据 reshape 为 'closest square'

python-3.x - 如何解释线性判别分析的结果?

python - Tensorflow:保存和恢复TensorFlowEstimator()的方法

python - 如何复制类变量 - Python

python - 使用带有字典值的 INSERT TO sql