new; cls; n=5; x=zeros(n,1); b=2; format/rz 3,1; print x'; do while not x==(b-1); x=recNindex(x,b); print x'; endo; proc recNindex(x,N); local dim,j; dim=rows(x); x[dim]=x[dim]+1; j=dim; do until j==0; if x[j]==N; x[j]=0; x[j-1]=x[j-1]+1; endif; j=j-1; endo; retp(x); endp;