Jelly, 8 6 bytes
⁷³p$Ȯ¿
This is a monadic link that accepts an alphabet and prints an infinite list of strings. Try it online!
How it works
⁷³p$Ȯ¿ Monadic link. Argument: A (alphabet)
⁷ Set the return value to '\n'.
¿ While loop.
Condition:
Ȯ Print the current return value and return it (always truthy).
Body:
$ Combine the two links to the left into a single, monadic link.
³ Yield A.
p Perform the Cartesian product of A and the current return value,
updating the return value in the process.
Alternate version, 6 bytes (non-competing)
R’ḃL}ị
This is a dyadic link that accepts an alphabet and the desired number of strings as left and right arguments, respectively.
I consider this version non-competing, since it uses bijective base conversion, which has been implemented after this challenge had been sandboxed. Try it online!
How it works
R’ḃL}ị Dyadic link. Arguments: n (integer), A (alphabet)
R Range; yield [1, ..., n].
’ Decrement; yield [0, ..., n-1].
L} Yield l, the length of A.
ḃ Convert every i in [0, ..., n-1] to bijective base l.
ị For each array of digits, retrieve the corresponding characters of A.