Me gustaría encontrar una manera limpia e inteligente (en python) para encontrar todas las permutaciones de cadenas de 1s y 0s x caracteres de largo. Lo ideal sería que esto sería rápido y no requiere hacer demasiadas iteraciones ...todas las permutaciones de una secuencia binaria x bits de largo
Así, para x = 1 Quiero: [ '0', '1'] = 2 x [ '00', '01 ',' 10' , '11']
etc ..
ahora mismo tengo unas pocas cosas, que es lento y parece poco elegante:
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 x[1]])] = x[0]
es esta tarea? – AShelly
Tenga en cuenta que en realidad no está describiendo permutaciones. –
Estoy sintiendo que viene una corriente de respuesta de código de golf. :-) – payne