It looks like a good start! Some tips- - Index your arrays starting from 0 instead of 1. It will make life easier (and it's the convention in most modern languages)
- Try a two dimensional array for the board representation? A list of lists will do: brd = [ [0] * 5 for i in xrange(5) ] Now "brd[row][col]" will give the value of the square at that row and column. The printbrd function becomes: def printbrd(): for row in xrange(5): for col in xrange(5): print brd[row][col], print "" # print automatically adds a newline unless you follow with a comma - Or better yet, you don't even need a board representation. You can only have five queens, as opposed to 25 squares, so instead of storing a whole board, just store a list of the positions of queens. - affect is going to wipe out previous queens "1" with a "3", and you could still get a count of three or more zeros. - Try to generalize the problem from 5 queesn on 5x5 to N queens on NxN. Is 7 possible? How about 8? - the permute function is a nice use of generators -- http://mail.python.org/mailman/listinfo/python-list