I guess in this context the function IntegerPartitions
should at least be mentioned. It could be used here like so:
numberList[n_] := Select[IntegerPartitions[n], Max[#] < 10 &]
and from this calculate the numbers, e.g.:
nl = numberList[12];
FromDigits /@ Flatten[Permutations /@ nl, 1]
I cannot imagine to calculate all those numbers for non small n
, because the length of this list goes approximately like 0.50398 E^(0.692161 n), which e.g. for n=36
gives 3.34258*10^10 different numbers. Or am I misunderstanding the question?