python中列表子集内的排列

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

我有一个列表,需要获取所有排列。但是我只能在列表子集中进行排列。

例如,我有这样的列表[1,2,3,4]

我将其分为两个子集[1,2], [3,4]

而且我想得到一个可以给我的迭代器

[1,2], [3,4]
[2,1], [3,4]
[1,2], [4,3]
[2,1], [4,3]

所以它等效于嵌套循环。但是子集的数量可以不同,我无法将其编码为循环

python permutation combinatorics
1个回答
0
投票

尝试:

from itertools import permutations, product

x,y=[1,2],[3,4]

z=list(product(permutations(x), permutations(y)))

输出:

[((1, 2), (3, 4)), ((1, 2), (4, 3)), ((2, 1), (3, 4)), ((2, 1), (4, 3))]
© www.soinside.com 2019 - 2024. All rights reserved.