【发布时间】:2018-07-24 23:58:12
【问题描述】:
我正在尝试计算给定一组字符可能的排列数,例如:'a','b' 和长度,例如 2。
from itertools import product
mystr = 'ABC'
prodlen = 3
products = list(product(mystr,repeat=prodlen))
print(products)
但那是打印:
[('A', 'A', 'A'), ('A', 'A', 'B'), ('A', 'A', 'C'), ('A', 'B', 'A'), ('A', 'B', 'B'), ('A', 'B', 'C'), ('A', 'C', 'A'), ('A', 'C', 'B'), ('A', 'C', 'C'), ('B', 'A', 'A'), ('B', 'A', 'B'), ('B', 'A', 'C'), ('B', 'B', 'A'), ('B', 'B', 'B'), ('B', 'B', 'C'), ('B', 'C', 'A'), ('B', 'C', 'B'), ('B', 'C', 'C'), ('C', 'A', 'A'), ('C', 'A', 'B'), ('C', 'A', 'C'), ('C', 'B', 'A'), ('C', 'B', 'B'), ('C', 'B', 'C'), ('C', 'C', 'A'), ('C', 'C', 'B'), ('C', 'C', 'C')]
我需要的是:A, B, AA, BB, AB, BA,我需要这些排列的总数。该数字应与以下示例一样高:
17 131072
16 65536
15 32768
14 16384
13 8192
12 4096
11 2048
10 1024
9 512
8 256
7 128
6 64
5 32
4 16
3 8
2 4
1 2
Total = 262142
【问题讨论】:
-
见this
-
看起来像
2^n -
另外,
mystr='AABC'时会发生什么?你算 As 两次还是只算一次? -
只有一次,我需要这个数字,因为它将成为我算法中限制迭代次数的条件的一部分
标签: python combinations permutation