Input: A string
The program should loop through all lengths of the input (decrementing one each time), generate all combinations with replacement of the string, then make permutations out of the generated combinations, and display all of the strings. They can be separated with anything (doesn't need to be a comma)
Example for the string 'abc':
a, b, c, aa, ab, ac, ba, bb, bc, ca, cb, cc aaa, aab, aac, aba, abb, abc, aca, acb, acc baa, bab, bac, bba, bbb, bbc, bca, bcb, bcc caa, cab, cac, cba, cbb, cbc, cca, ccb, ccc
The values don't necessarily have to be sorted.
Avoid any standard loop holes.