Output the Goodstein sequence (This might be quite classic but this is my first post here, so I'm not ready for the fancy stuff yet)

The Goodstein sequence is defined for an input number as follows:

Pick a starting number n, let b=2 and repeat:


write n in heriditary base b notation
substitute all the (b)s to (b+1)s in n and substract 1
output the new decimal evaluation of n
increment b


Hereditary Base notation is a decomposition of a number where the basis is the bigger number to appear. Examples:


83 in HB3: 3^(3+1)+2
226 in HB2: 2^(2^(2+1))+2^(2+1)+2


Goodstein sequences always end up at 0, but they tend to first get quite big quite fast so it is not asked to output the complete sequence.



Task:

Given an input number in any reasonable format, your job is to output the Goodstein sequence for this number at least until it reaches 10^25 or 0

Examples:

Input: 3
Output: 3, 3, 3, 2, 1, 0
Input: 13
Output: 13, 108, 1279, 16092, 280711, 5765998, 134219479, 3486786855, 100000003325, 3138428381103, 106993205384715, 3937376385706415, 155568095557821073, 6568408355712901455, 295147905179352838943, 14063084452067725006646, 708235345355337676376131, 37589973457545958193377292
Input: 38
Output: 38, 22876792454990




Details:


Input number can be an array, a string, an integer, as long as it is in decimal base
Output follows the same rule
Separation of the terms in the output can be spaces, new-lines, or any reasonable separation
As soon as the sequence becomes larger than 10^25, your program may exit normally, throw an error/exception, or continue (no restriction)
This is code-golf, so the shortest answer (in bytes) wins
Of course, standard loopholes are forbidden
Python ungolfed working example here
Haskell, 77 bytes



(&amp;2) is an anonymous function taking an Integer and returning a (potentially very long) list of Integers, use as (&amp;2) 13.

(&amp;2)
n&amp;b|n&lt;0=[]|let _?0=0;e?n=(e+1)?div n b+mod n b*(b+1)^0?e=n:(0?n-1)&amp;(b+1)


Try it online! (cuts off at 10^25.)

How it works


(&amp;2) starts the sequence with base 2.
n&amp;b calculates the subsequence starting with the number n and base b.


It halts with an empty list if n&lt;0, which generally happens the step after n==0.
Otherwise, it prepends n to the list returned recursively by the expression (0?n-1)&amp;(b+1).

? is a local function operator. 0?n gives the result of converting n to hereditary base b, then incrementing the base everywhere.


The conversion recurses with the variable e keeping track of the current exponent. e?n converts the number n*b^e.
The recursion halts with 0 when n==0.
Otherwise, it divides n by the base b.


(e+1)?div n b handles the recursion for the quotient and next higher exponent.
mod n b*(b+1)^0?e handles the remainder (which is the digit corresponding to the current exponent e), the increment of base, and converting the current exponent hereditarily with 0?e.