def PowerSetsRecursive(items):
"""Use recursive call to return all subsets of items, include empty set"""if len(items) == 0:
#if the lsit is empty, return the empty list
return[[]]
subsets = []
first_elt = items[0] #first element
rest_list = items[1:]
#Strategy:Get all subsets of rest_list; for each of those subsets, a full subset list
#will contain both the original subset as well as a version of the sebset that contains the first_elt
for partial_sebset in PowerSetsRecursive(rest_list):
print('partial_sebset=',partial_sebset)
subsets.append(partial_sebset)
next_subset = partial_sebset[:] +[first_elt]
subsets.append(next_subset)
return subsets
#f=['a','b','c','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s']
f1=['a','b','c']
g=PowerSetsRecursive(f1)
print(g)