(заранее извиняюсь, если проблема уже решена, я новичок в python)
Мне нужно уменьшить список всех перестановок с диапазоном (1, N) с устранением из под-комбинаций элементов, взятых в подгруппах M, где внутри подгрупп положение не имеет значения.
Например, я сгенерировал всю перестановку с помощью этой процедуры
with open('Permutation.txt') as wf:
for p in permute(range (1, 4)):
s = (str(p))[1: -1]
wf.write (s)
wf.write ('\n')
1, 2, 3, 4
1, 2, 4, 3
1, 3, 2, 4
…
2, 1, 3, 4
2, 1, 4, 3
…
3, 1, 4, 2
…
4, 3, 1, 2
4, 3, 2, 1
Для каждого массива я сгруппировал комбинацию по M = двум компонентам:
(1, 2), (3, 4)
(1, 2), (4, 3)
(1, 3), (2, 4)
…
(2, 1), (3, 4)
(2, 1), (4, 3)
…
(3, 1), (4, 2)
…
(4, 3), (1, 2)
(4, 3), (2, 1)
Теперь мне нужно удалить (или не создавать) массив, где внутри подгрупп есть те же компоненты, например:
(1, 2), (3, 4) - a
(1, 2), (4, 3) - a
(1, 3), (2, 4) - b
…
(2, 1), (3, 4) - a
(2, 1), (4, 3) - a
…
(3, 1), (4, 2) - b
…
(4, 3), (1, 2) - c
(4, 3), (2, 1) - c
и результат должен быть:
(1, 2), (3, 4) - a
(1, 3), (2, 4) - b
(4, 3), (1, 2) - c