如何在m个插槽中生成n个(相似)元素的排列,在Python中没有重复项

问题描述 投票:0回答:1

我一直在尝试做某事,但是不能缠住我的头:

我想在n插槽中生成m元素的所有可能排列。

更确切地说,我有一个8x8的二维数组,但为了更简单起见,假设它是一个64插槽列表(稍后我将其转换回二维数组),全部填充为[C0 ]。我想在此列表中放置4 0,并生成所有可能的排列,没有重复。

例如,如果我要将2个元素放置在4个插槽的列表中,则将给出这6个列表:

1

我已经尝试过使用itertools,但是那里的功能似乎都做不到,或者我对它们的了解还不足以找到正确的方式来使用它们。

python permutation
1个回答
0
投票
0 0 1 1
0 1 0 1
1 0 0 1
0 1 1 0
1 0 1 0
1 1 0 0

输出

# permutations using itertools
from itertools import permutations 

# Get all permutations
perm = permutations([1, 1, 0, 0]) 
print(list(set(perm)))
© www.soinside.com 2019 - 2024. All rights reserved.