2017-01-15 3 views
0

Zum BeispielWie erstelle ich eine Liste von Permutationen basierend auf gegebenen Zeichen und einer Länge?

Ich habe eine Liste von Zeichen, die ich Permutationen von z. ['*', '+'] und eine Länge, die die Permutationen z. 2. Mit anderen Worten, ich möchte alle Kombinationen der gelieferten Liste bis zur gelieferten Länge finden. Ein Aufruf zum Generieren vonPermutationen könnte folgendermaßen aussehen.

generatePermutations(['*', '+'], 2) 

Welche zurückkehren sollte:

*, * 
*, + 
+, * 
+, + 

Ein anderes Beispiel wäre:

generatePermutations(['*', '+'], 3) 
*, *, * 
*, *, + 
*, +, + 
*, +, * 
+, *, + 
+, *, * 
+, +, * 
+, +, + 

Wie würde ich mich dies zu tun?

+1

Wie Sie das tun gegangen? Was ist passiert? – jonrsharpe

+1

Sieh dir 'product()' von 'itertools' an. – tarashypka

Antwort

2

Verwenden Sie itertool.product. Was Sie fragen, ist die cartesian product.

Beispiele

>>> list(itertools.product(['*', '+'], repeat=2)) 
[('*', '*'), ('*', '+'), ('+', '*'), ('+', '+')] 
>>> list(itertools.product(['*', '+'], repeat=3)) 
[('*', '*', '*'), ('*', '*', '+'), ('*', '+', '*'), ('*', '+', '+'), ('+', '*', '*'), ('+', '*', '+'), ('+', '+', '*'), ('+', '+', '+')] 
+0

Genau das habe ich gesucht. Aus irgendeinem Grund ist es mir in der API nicht aufgefallen. Vielen Dank! – Beardo

Verwandte Themen