# -*- coding: cp936 -*-
def queen(num=8,state=()):
for pos in range(num):
if not conflict(state,pos):
if len(state)== num-1:
yield (pos,)
else:
for result in queen(num,state+(pos,)):
yield (pos,)+result
def conflict(state,NextX):
NextY = len(state)
for i in range(NextY):
if abs(NextX-state[i]) in (0,NextY-i): return True
return False
def dayin(liebiao):
k=len(liebiao[0])
print "="*(2*k-1)
for i in liebiao:
for n in range(k):
print "○ "*i[n] + "● " + "○ "*(k-i[n]-1)
print "="*(2*k-1)
num = input("请输入放入的皇后数量:(建议在8以内,结果很长)")
#print list(queen(num))
dayin(list(queen(num)))
ok = input()