terms = 22;
B[x_] = x O[x]^(terms+1);
A[x_] = 1/(1 - x + B[x])^2;
Do[A[x_] = A[x]/(1 - x^k + B[x])^Coefficient[A[x], x, k] + O[x]^(terms+1) // Normal, {k, 2, terms+1}];
slaurte[n_]:=If[n==1, {o, {o}}, Join@@Table[Union[Sort/@Tuples[slaurte/@ptn]], {ptn, Rest[IntegerPartitions[n]]}]];
Table[Length[slaurte[n]], {n, 10}] (*
Gus Wiseman, Feb 07 2020 *)