Agrego una solución recursiva sin ni un solo for o while.
Código Python:
Ver originaln = 7
m = 2 * n - 1
def g(i, n):
if i == n: return str(i)
return str(i) + g(i+1,n) + str(i)
def f(i):
row = g(1, i)
print row.center(m)
if i == n: return
f(i + 1)
print row.center(m)
f(1)