It seems to me, that there is an error in the above definition. I implemented it in Pari/GP and had to correct the $(i+j)$-term to $(i+j+1)$.
Pari/GP
\\ use "r" and "c" for row- and col-indexes
\\ indexes are based on 1, not 0, so I have to add 1:
\\ use "r1","c1" for index into matrix
S=matid(dim);
for(r=1,dim-1, r1=r+1; \\ introduce corrected 1-based index into matrix "r1"
S[r1,1]=r!;
for(c=1,r, c1=1+c; \\ introduce corrected 1-based index into matrix "c1"
S[r1,c1] = r*S[r1-1,c1] + (r+c+1)*S[r1-1,c1-1]
)
)
print(S) ;

