1. 程式人生 > >求一個集合的所有子集 Python實現

求一個集合的所有子集 Python實現

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Sat Jun 23 16:59:07 2018

@author: luogan
"""

def PowerSetsBinary(items):  
    #generate all combination of N items  
    N = len(items)  
    #enumerate the 2**N possible combinations  
    set_all=[]
    for i in range(2**N):

        #print('i=',i)
#print('__'*10) combo = [] for j in range(N): #print('j=',j) #test jth bit of integer i if(i >> j ) % 2 == 1: print('i=',i,'j=',j) combo.append(items[j]) #print(combo) #yield combo
#print(combo) set_all.append(combo) return set_all a=list(range(3)) out= PowerSetsBinary(a) print(out
[[], [0], [1], [0, 1], [2], [0, 2], [1, 2], [0, 1, 2]]