位图算法

"""
位图算法:
输入一个字符串, 输出该字符串中字符的所有组合.
例如: 输入字符串"1,2,3", 则输出为1,2,3,12,13,23,123(组合数, 不考虑顺序, 所以12和21是等价的)
"""
s = input(">>>")
lst = s.split(",")
result = []

for i in range(2**len(lst)):
s = format(i,f"0{len(lst)}b") #b代表二进制 0几b代表几位的二进制
# print(s)
ss = ""
for j in range(0,len(s)):
if s[j] == '1':
ss += lst[j] #用相对应的字符替换位数
        if ss != "":
result.append(ss)
print(set(result))
posted @ 2020-05-16 23:16  june_ruby  阅读(188)  评论(0编辑  收藏  举报