如何计算两个字母数字字符的所有可能组合?

时间:2017-12-28 07:26:07

标签: python combinations cartesian-product alphabet number-systems

字母 A-Z 和数字 0-9 ,如何获得all 1296 possible combinations之类的:

['AA', 'AB', ..., 'AZ', 'A0', 'A1', ..., 'Z9', '0A', '0B', ..., '98', '99']

作为一个附带问题,这种号码系统叫做什么?

2 个答案:

答案 0 :(得分:3)

目前的建议是错误的。例如,替换组合不会同时给您ABBA,只会给第一个。{1}}和permutationsAA不会有BBimport string import itertools combinations_generator = itertools.product(string.ascii_uppercase + string.digits, repeat=2) combinations = list(map(''.join, combinations_generator)) print(len(combinations))

相反,您应该使用itertools.product

例如:

combinations_generator

这将为您提供1296种组合。

('A', 'A')会生成('A', 'B')map(''.join, combinations_generator)等元组 使用'AA'我们会像'AB'ClientRequestFactory等一样加入他们。

答案 1 :(得分:0)

您可以使用permutations来获取列表。

例如

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