我知道如何在 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/