把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