2017-01-15 54 views
0

例如,如何根據給定的字符和長度生成一個排列列表?

我有字符的列表,我想生成的例如排列['*','+']以及我希望產生的排列的長度,例如,換句話說,我想查找提供的列表的所有組合,直到提供的長度。對generatePermutations的調用可能如下所示。

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

應返回:

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

另一個例子是:

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

我怎麼會去這樣做呢?

+1

你如何去這樣做呢?發生了什麼? – jonrsharpe

+1

查看'itertools'中的'product()'。 – tarashypka

回答

2

使用itertool.product。你要求的是cartesian product

例子

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

這正是我所期待的。由於某種原因,它沒有跳出我的API。謝謝! – Beardo

相關問題