sum[g_] := g + Total@IntegerDigits@g ming[n_] := n - IntegerLength[n]*9 self[n_] := NoneTrue [Range[ming[n], n - 1], sum[#] == n &] Module[{t = 1, x = 1}, Reap[ While[t <= 50, If[self[x], Sow[x]; t++]; x++] ][[2, 1]]]