Я экспериментировал с рядом методов, но я уверен, что есть гладкий способ сделать это.
Предположим, у меня есть два списка с одинаковым количеством элементов в них (по 4 штуки):
a = ['a', 'b', 'c', 'd']
b = [1, 2, 3, 4]
Я хотел бы объединить эти списки всеми возможными способами, сохраняя порядок. Примеры выходов:
a, b, c, d, 1, 2, 3, 4
1, 2, 3, 4, a, b, c, d
a, b, 1, 2, c, 3, 4, d
Точка в каждом из списков должна сохранять свой порядок, чтобы элемент не мог предшествовать другому элементу на выходе, учитывая его положение в списке. поэтому, например, выход не может быть:
a, b, **d**, c, 1... > d precedes c whereas c is before d in the original list
1, **4**, a, b, 3.... > 4 precedes 3 whereas 3 is before 4 in the original list
Я предполагаю, что идея состоит в том, чтобы объединить второй список в первый список всеми возможными способами. Полностью обработанный пример:
a = [a, b]
b = [1, 2]
желаемый результат:
ab12
a1b2
a12b
1ab2
1a2b
12ab
Как мне это сделать? Имеет ли itertools
возможность сделать это в некотором роде? Или есть другой способ сделать это? Пожалуйста, помогите!