Takes at least 1 argument, and uses the first argument string to recursively output every combination of the given string in its order, 'alphabetically' so to say.
As explained above, if you enter the alphabet of any language of input, you will see an alphabetically ordered output of combinations. This is achieved by the program preserving the order of the original string throughout its recursive lifespan.
Took me the entire evening to figure it out, fun problem.
Below is an example of inputs and outputs.
