defspiral_number(N): step_x = [0, 1, 0, -1] step_y = [1, 0, -1, 0] a = [[0for j in xrange(N)] for j in xrange(N)] dir = 0 i = 0 j = 0 a[i][j] = 1 n = 2 while n <= N ** 2: x = i + step_x[dir] y = j + step_y[dir] if x >= 0and x < N and y >= 0and y < N and a[x][y] == 0: a[x][y] = n n += 1 i = x j = y else: dir = (dir + 1 + len(step_x)) % len(step_x)
for i in xrange(N): for j in xrange(N): print a[i][j], print