defisValid(board, x, y):for i inrange(x +1):for j inrange(len(board[i])):if board[i][j]and(j == y orabs(x - i)==abs(y - j)):returnFalsereturnTruedefnQueenProblem(board, row, n, res):if row == n:
t =[]for i inrange(len(board)):for j inrange(len(board[i])):ifnot board[i][j]==0:
t.append(j +1)
res.append(t)# res.append(copy.deepcopy(board))returnfor j inrange(n):if isValid(board, row, j):
board[row][j]=1
nQueenProblem(board, row +1, n, res)
board[row][j]=0return res
if __name__ =='__main__':
n =10
board =[]for i inrange(n):
board.append([])for j inrange(n):
board[i].append(0)
res =[]
nQueenProblem(board,0, n, res)
i =0while i <len(res):if i %5==0:print'\r'print res[i],
i +=1iflen(res)==0:print'No Solution'