If you want to calculate a set containing all subsets of set (also called power set) you could either choose an recursive approach or try this iterative approach which is faster than the recursive one.
def get_subsets(fullset): listrep = list(fullset) subsets = [] for i in range(2**len(listrep)): subset = [] for k in range(len(listrep)): if i & 1<<k: subset.append(listrep[k]) subsets.append(subset) return subsets subsets = get_subsets(set([1,2,3,4])) print(subsets) print(len(subsets))
You can also find a shorter version at the end of the article, but to understand the principle the algorithm above is more suitable.