The answer to this question is much too long
Your challenge is to write a partitioning function in the smallest number of characters.
['a', 'b', 'c']
[(('a'),('b'),('c')), (('a', 'b'), ('c')), (('a', 'c'), ('b')), (('b', 'c'), ('a')), (('a', 'b', 'c'))]
The input can be a list/array/set/string etc. whatever is easiest for your function to process
You can also choose the output format to suit yourself as long as the structure is clear.
Your function should work for at least 6 items in the input