我想要一個函數,它會給我所有可能的由只有零和1組成的長度的字符串。例如:在Python中生成一個長度爲n的位列表
spam(4)
應該得到我:
['0110', '0111', '0001', '0011', '0010', '0101', '0100', '1110', '1100', '1101', '1010', '1011', '1001', '1000']
我試圖用itertools.permutations
作業。所以,這就是我所做的。
def getPerms(n):
perms = getCandidates(n)
res = []
for i in perms:
res.extend(permutations(i))
res = clean(res)
return res
def clean(ar):
res = []
for i in ar:
temp = ""
for j in i:
temp += j
res.append(temp)
return list(set(res))
def getCandidates(n):
res = []
for i in range(1, n):
res.append("1"*i + "0"*(n-i))
return res
但是,這是非常低效的,並提供了10作爲輸入的內存錯誤。
要清楚 - 你希望它包含至少一個和至少一個零?因爲'0000'和'1111'應該在你的設置中。 – nneonneo 2013-03-23 03:11:48
是的,我需要這些可能性。 – Gerard 2013-03-23 14:27:08