Generates all possible combinations of an arbitrary length for an arbitrary alphabet.