遞迴求填空結果的python程式

lt發表於2020-02-22

把n個格子填充0-n個a的情況輸出。不過是深度優先的,怎麼做到廣度優先呢?

n=4
def fill(s,lv,p):
 global n
 print(s,lv,p)
 if lv==n: return
 for i in range(p,n):
  fill(s[:i]+'1'+s[i+1:],lv+1,i+1)

fill('0000',0,0)

0000 0 0
a000 1 1
aa00 2 2
aaa0 3 3
aaaa 4 4
aa0a 3 4
a0a0 2 3
a0aa 3 4
a00a 2 4
0a00 1 2
0aa0 2 3
0aaa 3 4
0a0a 2 4
00a0 1 3
00aa 2 4
000a 1 4

相關文章