Перестановки внутри подмножеств списка в python - PullRequest
0 голосов
/ 23 февраля 2020

У меня есть список, и мне нужно получить все перестановки. Но я могу делать перестановки только внутри подмножеств списка.

Так, например, у меня есть такой список [1,2,3,4]

Я разделил его на два подмножества [1,2], [3,4]

И я хочу получить итерацию, которая даст мне

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

Так что это эквивалентно вложенным циклам. Но количество подмножеств может быть разным, и я не могу закодировать его как циклы

Ответы [ 2 ]

0 голосов
/ 23 февраля 2020

вы можете попробовать с этим


import itertools

subset= [1,2,3,4]
for sin itertools.combinations(subset, 2):
        print(s)
0 голосов
/ 23 февраля 2020

Попробуйте:

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))]
...