python - 使用 itertools 组合和排列函数计算重复元素
问题描述
"O"
我需要使用 itertools 模块来查找s 和s的 n 个元素序列的排列总数"X"
。(n 将是一个已知常数,但请给出 n=8 的答案)。例如,如果我输入 3,它应该输出:
OOO
OOX
OXO
XOO
OXX
XXO
XOX
XXX
不一定按这个顺序。我目前正在使用 itertools 及其组合/排列/组合_with_replacement 函数来执行此操作,但似乎无法弄清楚如果我给它一个包含多个相同元素的数组,它们是相同的。要找到组合,我很棒,我目前可以这样做:
comb = combinations_with_replacement(["O", "X"], 8)
哪个输出
('O', 'O', 'O', 'O', 'O', 'O', 'O', 'O')
('O', 'O', 'O', 'O', 'O', 'O', 'O', 'X')
('O', 'O', 'O', 'O', 'O', 'O', 'X', 'X')
('O', 'O', 'O', 'O', 'O', 'X', 'X', 'X')
('O', 'O', 'O', 'O', 'X', 'X', 'X', 'X')
('O', 'O', 'O', 'X', 'X', 'X', 'X', 'X')
('O', 'O', 'X', 'X', 'X', 'X', 'X', 'X')
('O', 'X', 'X', 'X', 'X', 'X', 'X', 'X')
('X', 'X', 'X', 'X', 'X', 'X', 'X', 'X')
但是,当我使用 permutations 函数时,它会区分相等的元素,使得有 8 个阶乘乘以 9 = 40320 乘以 9 个输出元组,而应该只有 2^8=256 个输出。有人可以帮忙吗?
谢谢!
编辑:我还需要实际生成排列。不只是找到他们的总数。
解决方案
您可以使用itertools.product
参数repeat
来获得所需的输出:
for xos in itertools.product('OX', repeat=3):
print(xos)
给出:
('O', 'O', 'O')
('O', 'O', 'X')
('O', 'X', 'O')
('O', 'X', 'X')
('X', 'O', 'O')
('X', 'O', 'X')
('X', 'X', 'O')
('X', 'X', 'X')
对于repeat=8
,您将获得 256 个结果:
('O', 'O', 'O', 'O', 'O', 'O', 'O', 'O')
('O', 'O', 'O', 'O', 'O', 'O', 'O', 'X')
('O', 'O', 'O', 'O', 'O', 'O', 'X', 'O')
('O', 'O', 'O', 'O', 'O', 'O', 'X', 'X')
('O', 'O', 'O', 'O', 'O', 'X', 'O', 'O')
('O', 'O', 'O', 'O', 'O', 'X', 'O', 'X')
('O', 'O', 'O', 'O', 'O', 'X', 'X', 'O')
('O', 'O', 'O', 'O', 'O', 'X', 'X', 'X')
('O', 'O', 'O', 'O', 'X', 'O', 'O', 'O')
('O', 'O', 'O', 'O', 'X', 'O', 'O', 'X')
('O', 'O', 'O', 'O', 'X', 'O', 'X', 'O')
('O', 'O', 'O', 'O', 'X', 'O', 'X', 'X')
('O', 'O', 'O', 'O', 'X', 'X', 'O', 'O')
('O', 'O', 'O', 'O', 'X', 'X', 'O', 'X')
('O', 'O', 'O', 'O', 'X', 'X', 'X', 'O')
('O', 'O', 'O', 'O', 'X', 'X', 'X', 'X')
('O', 'O', 'O', 'X', 'O', 'O', 'O', 'O')
('O', 'O', 'O', 'X', 'O', 'O', 'O', 'X')
('O', 'O', 'O', 'X', 'O', 'O', 'X', 'O')
('O', 'O', 'O', 'X', 'O', 'O', 'X', 'X')
('O', 'O', 'O', 'X', 'O', 'X', 'O', 'O')
('O', 'O', 'O', 'X', 'O', 'X', 'O', 'X')
('O', 'O', 'O', 'X', 'O', 'X', 'X', 'O')
('O', 'O', 'O', 'X', 'O', 'X', 'X', 'X')
('O', 'O', 'O', 'X', 'X', 'O', 'O', 'O')
('O', 'O', 'O', 'X', 'X', 'O', 'O', 'X')
('O', 'O', 'O', 'X', 'X', 'O', 'X', 'O')
('O', 'O', 'O', 'X', 'X', 'O', 'X', 'X')
('O', 'O', 'O', 'X', 'X', 'X', 'O', 'O')
('O', 'O', 'O', 'X', 'X', 'X', 'O', 'X')
('O', 'O', 'O', 'X', 'X', 'X', 'X', 'O')
('O', 'O', 'O', 'X', 'X', 'X', 'X', 'X')
('O', 'O', 'X', 'O', 'O', 'O', 'O', 'O')
('O', 'O', 'X', 'O', 'O', 'O', 'O', 'X')
('O', 'O', 'X', 'O', 'O', 'O', 'X', 'O')
('O', 'O', 'X', 'O', 'O', 'O', 'X', 'X')
('O', 'O', 'X', 'O', 'O', 'X', 'O', 'O')
('O', 'O', 'X', 'O', 'O', 'X', 'O', 'X')
('O', 'O', 'X', 'O', 'O', 'X', 'X', 'O')
('O', 'O', 'X', 'O', 'O', 'X', 'X', 'X')
('O', 'O', 'X', 'O', 'X', 'O', 'O', 'O')
('O', 'O', 'X', 'O', 'X', 'O', 'O', 'X')
('O', 'O', 'X', 'O', 'X', 'O', 'X', 'O')
('O', 'O', 'X', 'O', 'X', 'O', 'X', 'X')
('O', 'O', 'X', 'O', 'X', 'X', 'O', 'O')
('O', 'O', 'X', 'O', 'X', 'X', 'O', 'X')
('O', 'O', 'X', 'O', 'X', 'X', 'X', 'O')
('O', 'O', 'X', 'O', 'X', 'X', 'X', 'X')
('O', 'O', 'X', 'X', 'O', 'O', 'O', 'O')
('O', 'O', 'X', 'X', 'O', 'O', 'O', 'X')
('O', 'O', 'X', 'X', 'O', 'O', 'X', 'O')
('O', 'O', 'X', 'X', 'O', 'O', 'X', 'X')
('O', 'O', 'X', 'X', 'O', 'X', 'O', 'O')
('O', 'O', 'X', 'X', 'O', 'X', 'O', 'X')
('O', 'O', 'X', 'X', 'O', 'X', 'X', 'O')
('O', 'O', 'X', 'X', 'O', 'X', 'X', 'X')
('O', 'O', 'X', 'X', 'X', 'O', 'O', 'O')
('O', 'O', 'X', 'X', 'X', 'O', 'O', 'X')
('O', 'O', 'X', 'X', 'X', 'O', 'X', 'O')
('O', 'O', 'X', 'X', 'X', 'O', 'X', 'X')
('O', 'O', 'X', 'X', 'X', 'X', 'O', 'O')
('O', 'O', 'X', 'X', 'X', 'X', 'O', 'X')
('O', 'O', 'X', 'X', 'X', 'X', 'X', 'O')
('O', 'O', 'X', 'X', 'X', 'X', 'X', 'X')
('O', 'X', 'O', 'O', 'O', 'O', 'O', 'O')
('O', 'X', 'O', 'O', 'O', 'O', 'O', 'X')
('O', 'X', 'O', 'O', 'O', 'O', 'X', 'O')
('O', 'X', 'O', 'O', 'O', 'O', 'X', 'X')
('O', 'X', 'O', 'O', 'O', 'X', 'O', 'O')
('O', 'X', 'O', 'O', 'O', 'X', 'O', 'X')
('O', 'X', 'O', 'O', 'O', 'X', 'X', 'O')
('O', 'X', 'O', 'O', 'O', 'X', 'X', 'X')
('O', 'X', 'O', 'O', 'X', 'O', 'O', 'O')
('O', 'X', 'O', 'O', 'X', 'O', 'O', 'X')
('O', 'X', 'O', 'O', 'X', 'O', 'X', 'O')
('O', 'X', 'O', 'O', 'X', 'O', 'X', 'X')
('O', 'X', 'O', 'O', 'X', 'X', 'O', 'O')
('O', 'X', 'O', 'O', 'X', 'X', 'O', 'X')
('O', 'X', 'O', 'O', 'X', 'X', 'X', 'O')
('O', 'X', 'O', 'O', 'X', 'X', 'X', 'X')
('O', 'X', 'O', 'X', 'O', 'O', 'O', 'O')
('O', 'X', 'O', 'X', 'O', 'O', 'O', 'X')
('O', 'X', 'O', 'X', 'O', 'O', 'X', 'O')
('O', 'X', 'O', 'X', 'O', 'O', 'X', 'X')
('O', 'X', 'O', 'X', 'O', 'X', 'O', 'O')
('O', 'X', 'O', 'X', 'O', 'X', 'O', 'X')
('O', 'X', 'O', 'X', 'O', 'X', 'X', 'O')
('O', 'X', 'O', 'X', 'O', 'X', 'X', 'X')
('O', 'X', 'O', 'X', 'X', 'O', 'O', 'O')
('O', 'X', 'O', 'X', 'X', 'O', 'O', 'X')
('O', 'X', 'O', 'X', 'X', 'O', 'X', 'O')
('O', 'X', 'O', 'X', 'X', 'O', 'X', 'X')
('O', 'X', 'O', 'X', 'X', 'X', 'O', 'O')
('O', 'X', 'O', 'X', 'X', 'X', 'O', 'X')
('O', 'X', 'O', 'X', 'X', 'X', 'X', 'O')
('O', 'X', 'O', 'X', 'X', 'X', 'X', 'X')
('O', 'X', 'X', 'O', 'O', 'O', 'O', 'O')
('O', 'X', 'X', 'O', 'O', 'O', 'O', 'X')
('O', 'X', 'X', 'O', 'O', 'O', 'X', 'O')
('O', 'X', 'X', 'O', 'O', 'O', 'X', 'X')
('O', 'X', 'X', 'O', 'O', 'X', 'O', 'O')
('O', 'X', 'X', 'O', 'O', 'X', 'O', 'X')
('O', 'X', 'X', 'O', 'O', 'X', 'X', 'O')
('O', 'X', 'X', 'O', 'O', 'X', 'X', 'X')
('O', 'X', 'X', 'O', 'X', 'O', 'O', 'O')
('O', 'X', 'X', 'O', 'X', 'O', 'O', 'X')
('O', 'X', 'X', 'O', 'X', 'O', 'X', 'O')
('O', 'X', 'X', 'O', 'X', 'O', 'X', 'X')
('O', 'X', 'X', 'O', 'X', 'X', 'O', 'O')
('O', 'X', 'X', 'O', 'X', 'X', 'O', 'X')
('O', 'X', 'X', 'O', 'X', 'X', 'X', 'O')
('O', 'X', 'X', 'O', 'X', 'X', 'X', 'X')
('O', 'X', 'X', 'X', 'O', 'O', 'O', 'O')
('O', 'X', 'X', 'X', 'O', 'O', 'O', 'X')
('O', 'X', 'X', 'X', 'O', 'O', 'X', 'O')
('O', 'X', 'X', 'X', 'O', 'O', 'X', 'X')
('O', 'X', 'X', 'X', 'O', 'X', 'O', 'O')
('O', 'X', 'X', 'X', 'O', 'X', 'O', 'X')
('O', 'X', 'X', 'X', 'O', 'X', 'X', 'O')
('O', 'X', 'X', 'X', 'O', 'X', 'X', 'X')
('O', 'X', 'X', 'X', 'X', 'O', 'O', 'O')
('O', 'X', 'X', 'X', 'X', 'O', 'O', 'X')
('O', 'X', 'X', 'X', 'X', 'O', 'X', 'O')
('O', 'X', 'X', 'X', 'X', 'O', 'X', 'X')
('O', 'X', 'X', 'X', 'X', 'X', 'O', 'O')
('O', 'X', 'X', 'X', 'X', 'X', 'O', 'X')
('O', 'X', 'X', 'X', 'X', 'X', 'X', 'O')
('O', 'X', 'X', 'X', 'X', 'X', 'X', 'X')
('X', 'O', 'O', 'O', 'O', 'O', 'O', 'O')
('X', 'O', 'O', 'O', 'O', 'O', 'O', 'X')
('X', 'O', 'O', 'O', 'O', 'O', 'X', 'O')
('X', 'O', 'O', 'O', 'O', 'O', 'X', 'X')
('X', 'O', 'O', 'O', 'O', 'X', 'O', 'O')
('X', 'O', 'O', 'O', 'O', 'X', 'O', 'X')
('X', 'O', 'O', 'O', 'O', 'X', 'X', 'O')
('X', 'O', 'O', 'O', 'O', 'X', 'X', 'X')
('X', 'O', 'O', 'O', 'X', 'O', 'O', 'O')
('X', 'O', 'O', 'O', 'X', 'O', 'O', 'X')
('X', 'O', 'O', 'O', 'X', 'O', 'X', 'O')
('X', 'O', 'O', 'O', 'X', 'O', 'X', 'X')
('X', 'O', 'O', 'O', 'X', 'X', 'O', 'O')
('X', 'O', 'O', 'O', 'X', 'X', 'O', 'X')
('X', 'O', 'O', 'O', 'X', 'X', 'X', 'O')
('X', 'O', 'O', 'O', 'X', 'X', 'X', 'X')
('X', 'O', 'O', 'X', 'O', 'O', 'O', 'O')
('X', 'O', 'O', 'X', 'O', 'O', 'O', 'X')
('X', 'O', 'O', 'X', 'O', 'O', 'X', 'O')
('X', 'O', 'O', 'X', 'O', 'O', 'X', 'X')
('X', 'O', 'O', 'X', 'O', 'X', 'O', 'O')
('X', 'O', 'O', 'X', 'O', 'X', 'O', 'X')
('X', 'O', 'O', 'X', 'O', 'X', 'X', 'O')
('X', 'O', 'O', 'X', 'O', 'X', 'X', 'X')
('X', 'O', 'O', 'X', 'X', 'O', 'O', 'O')
('X', 'O', 'O', 'X', 'X', 'O', 'O', 'X')
('X', 'O', 'O', 'X', 'X', 'O', 'X', 'O')
('X', 'O', 'O', 'X', 'X', 'O', 'X', 'X')
('X', 'O', 'O', 'X', 'X', 'X', 'O', 'O')
('X', 'O', 'O', 'X', 'X', 'X', 'O', 'X')
('X', 'O', 'O', 'X', 'X', 'X', 'X', 'O')
('X', 'O', 'O', 'X', 'X', 'X', 'X', 'X')
('X', 'O', 'X', 'O', 'O', 'O', 'O', 'O')
('X', 'O', 'X', 'O', 'O', 'O', 'O', 'X')
('X', 'O', 'X', 'O', 'O', 'O', 'X', 'O')
('X', 'O', 'X', 'O', 'O', 'O', 'X', 'X')
('X', 'O', 'X', 'O', 'O', 'X', 'O', 'O')
('X', 'O', 'X', 'O', 'O', 'X', 'O', 'X')
('X', 'O', 'X', 'O', 'O', 'X', 'X', 'O')
('X', 'O', 'X', 'O', 'O', 'X', 'X', 'X')
('X', 'O', 'X', 'O', 'X', 'O', 'O', 'O')
('X', 'O', 'X', 'O', 'X', 'O', 'O', 'X')
('X', 'O', 'X', 'O', 'X', 'O', 'X', 'O')
('X', 'O', 'X', 'O', 'X', 'O', 'X', 'X')
('X', 'O', 'X', 'O', 'X', 'X', 'O', 'O')
('X', 'O', 'X', 'O', 'X', 'X', 'O', 'X')
('X', 'O', 'X', 'O', 'X', 'X', 'X', 'O')
('X', 'O', 'X', 'O', 'X', 'X', 'X', 'X')
('X', 'O', 'X', 'X', 'O', 'O', 'O', 'O')
('X', 'O', 'X', 'X', 'O', 'O', 'O', 'X')
('X', 'O', 'X', 'X', 'O', 'O', 'X', 'O')
('X', 'O', 'X', 'X', 'O', 'O', 'X', 'X')
('X', 'O', 'X', 'X', 'O', 'X', 'O', 'O')
('X', 'O', 'X', 'X', 'O', 'X', 'O', 'X')
('X', 'O', 'X', 'X', 'O', 'X', 'X', 'O')
('X', 'O', 'X', 'X', 'O', 'X', 'X', 'X')
('X', 'O', 'X', 'X', 'X', 'O', 'O', 'O')
('X', 'O', 'X', 'X', 'X', 'O', 'O', 'X')
('X', 'O', 'X', 'X', 'X', 'O', 'X', 'O')
('X', 'O', 'X', 'X', 'X', 'O', 'X', 'X')
('X', 'O', 'X', 'X', 'X', 'X', 'O', 'O')
('X', 'O', 'X', 'X', 'X', 'X', 'O', 'X')
('X', 'O', 'X', 'X', 'X', 'X', 'X', 'O')
('X', 'O', 'X', 'X', 'X', 'X', 'X', 'X')
('X', 'X', 'O', 'O', 'O', 'O', 'O', 'O')
('X', 'X', 'O', 'O', 'O', 'O', 'O', 'X')
('X', 'X', 'O', 'O', 'O', 'O', 'X', 'O')
('X', 'X', 'O', 'O', 'O', 'O', 'X', 'X')
('X', 'X', 'O', 'O', 'O', 'X', 'O', 'O')
('X', 'X', 'O', 'O', 'O', 'X', 'O', 'X')
('X', 'X', 'O', 'O', 'O', 'X', 'X', 'O')
('X', 'X', 'O', 'O', 'O', 'X', 'X', 'X')
('X', 'X', 'O', 'O', 'X', 'O', 'O', 'O')
('X', 'X', 'O', 'O', 'X', 'O', 'O', 'X')
('X', 'X', 'O', 'O', 'X', 'O', 'X', 'O')
('X', 'X', 'O', 'O', 'X', 'O', 'X', 'X')
('X', 'X', 'O', 'O', 'X', 'X', 'O', 'O')
('X', 'X', 'O', 'O', 'X', 'X', 'O', 'X')
('X', 'X', 'O', 'O', 'X', 'X', 'X', 'O')
('X', 'X', 'O', 'O', 'X', 'X', 'X', 'X')
('X', 'X', 'O', 'X', 'O', 'O', 'O', 'O')
('X', 'X', 'O', 'X', 'O', 'O', 'O', 'X')
('X', 'X', 'O', 'X', 'O', 'O', 'X', 'O')
('X', 'X', 'O', 'X', 'O', 'O', 'X', 'X')
('X', 'X', 'O', 'X', 'O', 'X', 'O', 'O')
('X', 'X', 'O', 'X', 'O', 'X', 'O', 'X')
('X', 'X', 'O', 'X', 'O', 'X', 'X', 'O')
('X', 'X', 'O', 'X', 'O', 'X', 'X', 'X')
('X', 'X', 'O', 'X', 'X', 'O', 'O', 'O')
('X', 'X', 'O', 'X', 'X', 'O', 'O', 'X')
('X', 'X', 'O', 'X', 'X', 'O', 'X', 'O')
('X', 'X', 'O', 'X', 'X', 'O', 'X', 'X')
('X', 'X', 'O', 'X', 'X', 'X', 'O', 'O')
('X', 'X', 'O', 'X', 'X', 'X', 'O', 'X')
('X', 'X', 'O', 'X', 'X', 'X', 'X', 'O')
('X', 'X', 'O', 'X', 'X', 'X', 'X', 'X')
('X', 'X', 'X', 'O', 'O', 'O', 'O', 'O')
('X', 'X', 'X', 'O', 'O', 'O', 'O', 'X')
('X', 'X', 'X', 'O', 'O', 'O', 'X', 'O')
('X', 'X', 'X', 'O', 'O', 'O', 'X', 'X')
('X', 'X', 'X', 'O', 'O', 'X', 'O', 'O')
('X', 'X', 'X', 'O', 'O', 'X', 'O', 'X')
('X', 'X', 'X', 'O', 'O', 'X', 'X', 'O')
('X', 'X', 'X', 'O', 'O', 'X', 'X', 'X')
('X', 'X', 'X', 'O', 'X', 'O', 'O', 'O')
('X', 'X', 'X', 'O', 'X', 'O', 'O', 'X')
('X', 'X', 'X', 'O', 'X', 'O', 'X', 'O')
('X', 'X', 'X', 'O', 'X', 'O', 'X', 'X')
('X', 'X', 'X', 'O', 'X', 'X', 'O', 'O')
('X', 'X', 'X', 'O', 'X', 'X', 'O', 'X')
('X', 'X', 'X', 'O', 'X', 'X', 'X', 'O')
('X', 'X', 'X', 'O', 'X', 'X', 'X', 'X')
('X', 'X', 'X', 'X', 'O', 'O', 'O', 'O')
('X', 'X', 'X', 'X', 'O', 'O', 'O', 'X')
('X', 'X', 'X', 'X', 'O', 'O', 'X', 'O')
('X', 'X', 'X', 'X', 'O', 'O', 'X', 'X')
('X', 'X', 'X', 'X', 'O', 'X', 'O', 'O')
('X', 'X', 'X', 'X', 'O', 'X', 'O', 'X')
('X', 'X', 'X', 'X', 'O', 'X', 'X', 'O')
('X', 'X', 'X', 'X', 'O', 'X', 'X', 'X')
('X', 'X', 'X', 'X', 'X', 'O', 'O', 'O')
('X', 'X', 'X', 'X', 'X', 'O', 'O', 'X')
('X', 'X', 'X', 'X', 'X', 'O', 'X', 'O')
('X', 'X', 'X', 'X', 'X', 'O', 'X', 'X')
('X', 'X', 'X', 'X', 'X', 'X', 'O', 'O')
('X', 'X', 'X', 'X', 'X', 'X', 'O', 'X')
('X', 'X', 'X', 'X', 'X', 'X', 'X', 'O')
('X', 'X', 'X', 'X', 'X', 'X', 'X', 'X')
推荐阅读
- elasticsearch - python elasticsearch从给定的doc_id获取字段
- kubernetes - Kubernetes v1.16.7 CronJob 数量超过 20k+ 且不执行
- reactjs - Typescript:如何通过自动完成向函数动态添加方法?
- javascript - jQuery 中的第二个子值检查
- ios - 如何在 iOS Swift 应用程序中使用 USB 打印机通过 iPad 打印?
- nlp - 如果我选择的词在预训练的词嵌入矩阵中没有任何嵌入向量怎么办?
- angular - 向 FormArray 提供除空数组以外的任何内容时,Angular 自定义验证器会中断
- flutter - 'AnimatedContainer'宽度的来回动画从设备屏幕的全宽到Flutter中的特定值
- java - LocalDateTime.parse 中缺少秒 (00)
- android - 尽管调试版本工作正常,但 Flutter 发布 apk 崩溃