N выбрать N / 2 подсписки списка

Есть ли эффективный способ в Python, чтобы получить все разделы списка размераn на два подмножества размераn/2? Я хочу получить некоторую итеративную конструкцию, такую, чтобы каждая итерация обеспечивала два непересекающихся подмножества исходного списка, каждый из которых имел размерn/2.

Например:

A = [1,2,3,4,5,6]    # here n = 6
# some iterative construct
    # in each iteration, a pair of subsets of size n/2
    # subsets = [[1,3,4], [2,5,6]] for example for one of the iterations
    # subsets = [[1,2,5],[3,4,6]] a different iteration example

Подмножества должны быть непересекающимися, например,[[1,2,3], [4,5,6]] действует, но[[1,2,3], [3,4,5]] не является. Порядок двух подмножеств не имеет значения, например,[[1,2,3], [4,5,6]] не считается отличным от[[4,5,6], [1,2,3]] и, следовательно, только один из этих двух должен появляться в итерации. Порядок в каждом подмножестве также не имеет значения, поэтому[[1,2,3], [4,5,6]], [[1,3,2], [4,5,6]], [[3,2,1], [6,5,4]]и т. д. все они считаются одинаковыми, поэтому в течение всей итерации должен отображаться только один из них.

Ответы на вопрос(5)

Ваш ответ на вопрос