>>> def magic(n):
    for row in range(1, n + 1):
        print(' '.join('%*i'% (len(str(n**2)), cell) for cell in
                       (n * ((row + col - 1 + n 
                       ((row + 2 * col - 2)% n) + 1
                       for col in range(1, n + 1))))
    print('\nAll sum to magic number%i'% ((n * n + 1) * n 


>>> for n in (5, 3, 7):
	print('\nOrder%i\n======='% n)
	magic(n)



Order 5
=======
17 24  1  8 15
23  5  7 14 16
 4  6 13 20 22
10 12 19 21  3
11 18 25  2  9

All sum to magic number 65

Order 3
=======
8 1 6
3 5 7
4 9 2

All sum to magic number 15

Order 7
=======
30 39 48  1 10 19 28
38 47  7  9 18 27 29
46  6  8 17 26 35 37
 5 14 16 25 34 36 45
13 15 24 33 42 44  4
21 23 32 41 43  3 12
22 31 40 49  2 11 20

All sum to magic number 175
>>>