Code: Alles auswählen
[['1','2'],
['3','4','5'],
['2']]
Code: Alles auswählen
[['1','3','2'],
['2','3','2'],
['1','4','2'],
['2','4','2'],
['1','5','2'],
['2','5','2']]
Code: Alles auswählen
[['1','2'],
['3','4','5'],
['2']]
Code: Alles auswählen
[['1','3','2'],
['2','3','2'],
['1','4','2'],
['2','4','2'],
['1','5','2'],
['2','5','2']]
Das versuche ich ja gerade rauszufinden. Mit Rekursion dürfte das gehen. Ich weiß nur nicht, wiecofi hat geschrieben:Und wie sollen die neuen Listen aus den alten gebildet werden?
Code: Alles auswählen
[['1','3','2'],
['1','4','2'],
['1','5','2'],
['2','3','2'],
['2','4','2'],
['2','5','2']]
Code: Alles auswählen
l = [['1','2'], ['3','4','5'], ['2']]
def permutate(l):
if len(l) == 1:
return l
r = []
for e2 in permutate(l[1:]):
for e1 in l[0]:
r.append([e1] + e2)
return r
print(permutate(l))
Code: Alles auswählen
[<Tag "DIP">]
[<Tag "ATmega32">, <Tag "ATmega324">, <Tag "ATxmega32A4">]
[<Tag "AVR">, <Tag "AVR32">, <Tag "megaAVR">, <Tag "tinyAVR">]
Code: Alles auswählen
[<Tag "DIP">, <Tag "ATmega32">, <Tag "AVR">, <Tag "AVR32">, <Tag "megaAVR">, <Tag "tinyAVR">]
[<Tag "DIP">, <Tag "ATmega324">, <Tag "AVR">, <Tag "AVR32">, <Tag "megaAVR">, <Tag "tinyAVR">]
[<Tag "DIP">, <Tag "ATxmega32A4">, <Tag "AVR">, <Tag "AVR32">, <Tag "megaAVR">, <Tag "tinyAVR">]
Code: Alles auswählen
[<Tag "DIP">, <Tag "ATmega32">, <Tag "AVR">]
[<Tag "DIP">, <Tag "ATmega32">, <Tag "AVR32">]
[<Tag "DIP">, <Tag "ATmega32">, <Tag "megaAVR">]
[<Tag "DIP">, <Tag "ATmega32">, <Tag "tinyAVR">]
[<Tag "DIP">, <Tag "ATmega324">, <Tag "AVR">]
[<Tag "DIP">, <Tag "ATmega324">, <Tag "AVR32">]
[<Tag "DIP">, <Tag "ATmega324">, <Tag "megaAVR">]
[<Tag "DIP">, <Tag "ATmega324">, <Tag "tinyAVR">]
[<Tag "DIP">, <Tag "ATxmega32A4">, <Tag "AVR">]
[<Tag "DIP">, <Tag "ATxmega32A4">, <Tag "AVR32">]
[<Tag "DIP">, <Tag "ATxmega32A4">, <Tag "megaAVR">]
[<Tag "DIP">, <Tag "ATxmega32A4">, <Tag "tinyAVR">]
Code: Alles auswählen
In [275]: data
Out[275]: [['1', '2'], ['3', '4', '5'], ['2']]
In [276]: list(itertools.product(*data))
Out[276]:
[('1', '3', '2'),
('1', '4', '2'),
('1', '5', '2'),
('2', '3', '2'),
('2', '4', '2'),
('2', '5', '2')]
Code: Alles auswählen
In [281]: x = list(itertools.product(a, b, c))
In [282]: len(x)
Out[282]: 12
In [283]: x
Out[283]:
[('<Tag "DIP">', '<Tag "ATmega32">', '<Tag "AVR">'),
('<Tag "DIP">', '<Tag "ATmega32">', '<Tag "AVR32">'),
('<Tag "DIP">', '<Tag "ATmega32">', '<Tag "megaAVR">'),
('<Tag "DIP">', '<Tag "ATmega32">', '<Tag "tinyAVR">'),
('<Tag "DIP">', '<Tag "ATmega324">', '<Tag "AVR">'),
('<Tag "DIP">', '<Tag "ATmega324">', '<Tag "AVR32">'),
('<Tag "DIP">', '<Tag "ATmega324">', '<Tag "megaAVR">'),
('<Tag "DIP">', '<Tag "ATmega324">', '<Tag "tinyAVR">'),
('<Tag "DIP">', '<Tag "ATxmega32A4">', '<Tag "AVR">'),
('<Tag "DIP">', '<Tag "ATxmega32A4">', '<Tag "AVR32">'),
('<Tag "DIP">', '<Tag "ATxmega32A4">', '<Tag "megaAVR">'),
('<Tag "DIP">', '<Tag "ATxmega32A4">', '<Tag "tinyAVR">')]
In [284]: a
Out[284]: ['<Tag "DIP">']
In [285]: b
Out[285]: ['<Tag "ATmega32">', '<Tag "ATmega324">', '<Tag "ATxmega32A4">']
In [286]: c
Out[286]: ['<Tag "AVR">', '<Tag "AVR32">', '<Tag "megaAVR">', '<Tag "tinyAVR">']