h[l_] := With[{n = Length[l]}, Total[l]!/Product[Product[1 + l[[i]] - j + Sum[If[l[[k]] >= j, 1, 0], {k, i + 1, n}], {j, 1, l[[i]]}], {i, 1, n}]];
g[n_, i_, l_] := If[n == 0 || i == 1, h[Join[l, Array[1&, n]]], If[i < 1, 0, Flatten@ Table[g[n - i*j, i - 1, Join[l, Array[i &, j]]], {j, 0, n/i}]]];
T[n_] := g[n, n, {}];