相关疑难解决方法(0)

二进制序列的所有排列x位长

我想找到一个干净而聪明的方法(在python中)来查找1s和0s x chars long的字符串的所有排列.理想情况下,这将是快速的,不需要做太多的迭代......

因此,对于x = 1我想要:['0','1'] x = 2 ['00','01','10','11']

等等..

现在我有这个,这很慢,似乎不优雅:

    self.nbits = n
    items = []
    for x in xrange(n+1):
        ones = x
        zeros = n-x
        item = []
        for i in xrange(ones):
            item.append(1)
        for i in xrange(zeros):
            item.append(0)
        items.append(item)
    perms = set()
    for item in items:
        for perm in itertools.permutations(item):
            perms.add(perm)
    perms = list(perms)
    perms.sort()
    self.to_bits = {}
    self.to_code = {}
    for x in enumerate(perms):
        self.to_bits[x[0]] = ''.join([str(y) for y in x[1]])
        self.to_code[''.join([str(y) for y in …
Run Code Online (Sandbox Code Playgroud)

python algorithm combinatorics

25
推荐指数
4
解决办法
2万
查看次数

标签 统计

algorithm ×1

combinatorics ×1

python ×1