#C (with no loops, yeah!) - 72 bytes
C (with no loops, yeah!) - 72 bytes
b(n,c){if(n){b(n-1,32);printf("%d%c",n,c);}}r(n){if(n){r(n-1);b(n,10);}}
This creates a function r(n)
that can be used this way:
main(){ r(5); }
See it in action, here on tutorialspoint.com
It requires a very few tricks easily explained. I think it can be greatly improved.