So if I had a list of
String[] list = {A,B,C}; generateAllCombonations(list);
would return: ABC ACB BAC BCA CAB CBA
for any length of the list? AAB would not be allowed given no repeats also, AB would be invalid because it is not the length of the original array