拥有字母AZ和数字0-9的字母表,如何获得所有 1296 种可能的组合,例如:
['AA', 'AB', ..., 'AZ', 'A0', 'A1', ..., 'Z9', '0A', '0B', ..., '98', '99']
作为一个附带问题,这种数字系统叫什么?
拥有字母AZ和数字0-9的字母表,如何获得所有 1296 种可能的组合,例如:
['AA', 'AB', ..., 'AZ', 'A0', 'A1', ..., 'Z9', '0A', '0B', ..., '98', '99']
作为一个附带问题,这种数字系统叫什么?
当前的建议是错误的。例如,与替换的组合不会给你AB
,BA
同时只会给你第一个。并且permutations
不会有AA
,BB
等。
相反,您应该使用itertools.product
.
例如:
import string
import itertools
combinations_generator = itertools.product(string.ascii_uppercase + string.digits,
repeat=2)
combinations = list(map(''.join, combinations_generator))
print(len(combinations))
这将为您提供 1296 种组合。
combinations_generator
将生成像('A', 'A')
,('A', 'B')
等
这样的元组。我们将像,等map(''.join, combinations_generator)
一样将它们连接在一起。'AA'
'AB'
您可以使用排列来获取列表。
例如
import string
import itertools
series = [''.join(r) for r in itertools.permutations([str(i) for i in range(10)]+[str(c) for c in string.ascii_uppercase], 2)]
print(series)
print(len(series)) # got 1260 here