public static <E> List<Set<E>> allSubsets(Set<E> set)
Returns:
A list of (immutable) sets, starting with the empty set, followed by a set containing the last
element of the set, followed by all other subsets, and ending with (an immutable copy of)
the set itself