一道关于二进制编码的面试题

题目:输入一个字符串,输出该字符串里面的所有的组合。例如输入字符串为“123”,则输出为1 2 3 12 13 23 123(组合数,不考虑顺序)

思路:这个其实和转化为二进制数正好对应。

input_str = input(">>>")
l = len(input_str)
lst = []
for i in range(1, 2 ** l):
    str_format = format(i, "0{}b".format(l))
    str = ""
    for num in range(l):
        if int(str_format[num]) == 1:
            str += input_str[num]
    lst.append(str)

print(lst)
原文地址:https://www.cnblogs.com/d9e84208/p/10909884.html