Как разбить список на пары всеми возможными способамиPython

Программы на Python
Ответить
Anonymous
 Как разбить список на пары всеми возможными способами

Сообщение Anonymous »

У меня есть список (скажем, 6 элементов для простоты)

Код: Выделить всё

L = [0, 1, 2, 3, 4, 5]
и я хочу разбить его на пары ВСЕМИ возможными способами. Показываю некоторые конфигурации:

Код: Выделить всё

[(0, 1), (2, 3), (4, 5)]
[(0, 1), (2, 4), (3, 5)]
[(0, 1), (2, 5), (3, 4)]
и так далее.
Здесь (a, b) = (b, a) и порядок пар не важен, т.е.

Код: Выделить всё

[(0, 1), (2, 3), (4, 5)] = [(0, 1), (4, 5), (2, 3)]
Общее количество таких конфигураций 1*3*5*...*(N-1) где N — длина из моего списка.

Как мне написать генератор на Python, который выдает все возможные конфигурации для произвольного N?

Подробнее здесь: https://stackoverflow.com/questions/536 ... sible-ways
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»