Я пытаюсь найти лучший способ объединить два списка во все возможные комбинации. Итак, если я начну с двух списков, например:
list1 = [1, 2]
list2 = [3, 4]
Полученный список будет выглядеть следующим образом:
[[[1,3], [2,4]], [[1,4], [2,3]]]
То есть, он в основном создает список списков со всеми возможными комбинациями между ними.
Я работаю через itertools, и я уверен, что держу ответ, но я не могу придумать способ заставить его действовать таким образом. Ближе всего я пришел:
list1 = [1, 2, 3, 4]
list2 = [5, 6, 7, 8]
print list(itertools.product(list1, list2))
Что получилось:
[(1, 5), (1, 6), (1, 7), (1, 8), (2, 5), (2, 6), (2, 7), (2, 8), (3, 5), (3, 6), (3, 7), (3, 8), (4, 5), (4, 6), (4, 7), (4, 8)]
Таким образом, он делает все возможные комбинации элементов в каждом списке, но не все возможные результирующие списки. Как мне это добиться?
EDIT: конечной целью является возможность индивидуально обрабатывать каждый список для определения эффективности (фактические данные, с которыми я работаю, более сложны). Итак, в исходном примере выше это будет работать примерно так:
list1 = [1, 2]
list2 = [3, 4]
Get first merged list: [[1,3], [2, 4]]
Do stuff with this list
Get second merged list: [[1,4], [2, 3]]
Do stuff with this list
Если я получил вывод "список списков списков", описанный выше, я мог бы поместить его в цикл for и обработать. Другие формы вывода будут работать, но с ними, пожалуй, проще всего работать.