Я пытался найти все комбинации элементов в разных списках.
Я пытался с помощью itertools.product (), но я получаю выходные списки фиксированной длины
import itertools
a=[2,4,6,8,10]
b=[3,6,9]
c=[5,10]
d=[10]
l=list(itertools.product(a,b,c,d))
print(l)
[(2, 3, 5, 10), (2, 3, 10, 10), (2, 6, 5, 10), (2, 6, 10, 10), (2, 9, 5, 10), (2, 9, 10, 10), (4, 3, 5, 10), (4, 3, 10, 10), (4, 6, 5, 10), (4, 6, 10, 10), (4, 9, 5, 10), (4, 9, 10, 10), (6, 3, 5, 10), (6, 3, 10, 10), (6, 6, 5, 10), (6, 6, 10, 10), (6, 9, 5, 10), (6, 9, 10, 10), (8, 3, 5, 10), (8, 3, 10, 10), (8, 6, 5, 10), (8, 6, 10, 10), (8, 9, 5, 10), (8, 9, 10, 10), (10, 3, 5, 10), (10, 3, 10, 10), (10, 6, 5, 10), (10, 6, 10, 10), (10, 9, 5, 10), (10, 9, 10, 10)]
Но мне нужен вывод списков различной длины и комбинаций, таких как
Expected output : [2,3,5,10],
[2,3,5],
[2,3,10],
[2,3,10,10],
[2,3],
[2,6,5,10],
[2,6,10,10],
[2,6,5],
[2,6],
[2,9,5,10],
[2,9,5],
[2,9],
[2,9,10,10],
[4,3,5,10],
[4,3,5],
[4,3,10,10],
.
.
[10,9,10,10]
...so on
Я пытался использовать комбинации, комбинируя все списки, но это не дало требуемого вывода
a=[2,4,6,8,10,3,6,9,5,10]
import itertools
for i in range(1,4):
b=list(itertools.combinations(a,i))
print(b)
Учитывая, что вы не знаете, сколько списков вы получите в качестве входных данных Так что может быть эффективным способом достижения ожидаемого результата?