Another solution using numpy:
x = np.ones([10,10]) * np.arange(1,11)
y = np.tril(x,0)
y[0,0]=0
z = np.ones(10) * np.arange(1,11).reshape(10,1)
res = np.concatenate((y,x+z),axis=0)
Output:
>>> x = np.ones([10,10]) * np.arange(1,11)
>>> y = np.tril(x,0)
>>> y[0,0]=0
>>> z = np.ones(10) * np.arange(1,11).reshape(10,1)
>>> res = np.concatenate((y,x+z),axis=0)
>>> res
array([[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 1., 2., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 1., 2., 3., 0., 0., 0., 0., 0., 0., 0.],
[ 1., 2., 3., 4., 0., 0., 0., 0., 0., 0.],
[ 1., 2., 3., 4., 5., 0., 0., 0., 0., 0.],
[ 1., 2., 3., 4., 5., 6., 0., 0., 0., 0.],
[ 1., 2., 3., 4., 5., 6., 7., 0., 0., 0.],
[ 1., 2., 3., 4., 5., 6., 7., 8., 0., 0.],
[ 1., 2., 3., 4., 5., 6., 7., 8., 9., 0.],
[ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.],
[ 2., 3., 4., 5., 6., 7., 8., 9., 10., 11.],
[ 3., 4., 5., 6., 7., 8., 9., 10., 11., 12.],
[ 4., 5., 6., 7., 8., 9., 10., 11., 12., 13.],
[ 5., 6., 7., 8., 9., 10., 11., 12., 13., 14.],
[ 6., 7., 8., 9., 10., 11., 12., 13., 14., 15.],
[ 7., 8., 9., 10., 11., 12., 13., 14., 15., 16.],
[ 8., 9., 10., 11., 12., 13., 14., 15., 16., 17.],
[ 9., 10., 11., 12., 13., 14., 15., 16., 17., 18.],
[10., 11., 12., 13., 14., 15., 16., 17., 18., 19.],
[11., 12., 13., 14., 15., 16., 17., 18., 19., 20.]])