19 lines
406 B
Python
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))
|