RosettaCodeData/Task/Spiral-matrix/Python/spiral-matrix-3.py

19 lines
406 B
Python

def rot_right(a):
return zip(*a[::-1])
def sp(m, n, start = 0):
""" Generate number range spiral of dimensions m x n
"""
if n == 0:
yield ()
else:
yield tuple(range(start, m + start))
for row in rot_right(list(sp(n - 1, m, m + start))):
yield row
def spiral(m):
return sp(m, m)
for row in spiral(5):
print(''.join('%3i' % i for i in row))