N=6;
n=N;
Matrix = [[0 for x in xrange(N)] for x in xrange(N)];
def printMatrix():
matString="";
for i in xrange(N):
for j in xrange(N):
matString=matString+"\t"+str(Matrix[i][j]);
matString=matString+"\n";
print matString;
cnt=1;
offset=0;
for outerCnt in range(int(N/2) + 1):
i=N-offset;
while i >= 1+offset:
Matrix[N-1-offset][i-1]=cnt;
cnt+=1;
i-=1;
printMatrix();
i=N-offset;
while i > 1+offset:
Matrix[i-2][0+offset]=cnt;
cnt+=1;
i-=1;
printMatrix();
i=1+offset;
while i <= n-1:
Matrix[0+offset][i]=cnt;
cnt+=1;
i+=1;
printMatrix();
i=1+offset;
while i < n-1:
Matrix[i][N-1-offset]=cnt;
cnt+=1;
i+=1;
printMatrix();
offset+=1;
n-=1;