criando uma matriz espiral em python?

Eu e meu companheiro estávamos tentando criar um jogo divertido em python, onde os elementos inseridos na matriz são acessados de maneira espiralada. Eu tentei alguns métodos como um dado abaixo (fonte)

def spiral(X, Y):
  x = y = 0
  dx = 0
  dy = -1
  for i in range(max(X, Y)**2):
    if (-X/2 < x <= X/2) and (-Y/2 < y <= Y/2):
        print (x, y)
        # DO STUFF...
    if x == y or (x < 0 and x == -y) or (x > 0 and x == 1-y):
        dx, dy = -dy, dx
    x, y = x+dx, y+dy

A instrução acima acessa os elementos no loop espiral e os imprime para uma matriz definida AE. Gostaria de saber como posso transformar um determinado array AE em um espiral

questionAnswers(6)

yourAnswerToTheQuestion