def threat(k, m, alist):
if alist == []:
return False
else:
x = alist[0]
if (k == x-m) or (k == m-x):
return True
else:
return threat(k+1, m, alist[1:])
def queen1(m, b, n):
if m == 0:
return []
else:
if (m in b) or threat(1, m, b):
return queen1(m-1, b, n)
elif len(b) == n-1:
return [[m]+b] + (queen1(m-1, b, n))
else:
return queen1(n, [m]+b, n) + (queen1(m-1, b, n))
def queen(n):
return queen1(n,[],n)
n=12
print(len(queen(12)))
