import random import time def get_numbers(pow2, compliment): numbers = [] constant = compliment for i in (0, 1): for j in (0, 1): for k in (0, 1): for l in (0, 1): if pow2 == 0: cur_digits = (i, j, k, l, constant) if pow2 == 1: cur_digits = (i, j, k, constant, l) if pow2 == 2: cur_digits = (i, j, constant, k, l) if pow2 == 3: cur_digits = (i, constant, j, k, l) if pow2 == 4: cur_digits = (constant, i, j, k, l) numbers.append(cur_digits) return numbers print "example of how to use randomness to determine compliment" a_few_tries = xrange(3) for i in a_few_tries: compliment = random.randint(0, 3026) % 2 for i in get_numbers(pow2=0, compliment=compliment): print i print "for loop to print out all numbers from 2^0 to 2^5" for i in (0, 1): for j in (0, 1): for k in (0, 1): for l in (0, 1): for m in (0, 1): for n in (0, 1): print i, j, k, l, m print "example function to convert a string in binary to integers: (see source)" def bin2int(s): total = 0 for i in xrange(len(s)): if s[i] == '1': total += 2**(len(s) - i - 1) return total print "here I test out the bin2int func defined above:" test_cases = ('1010', '1011', '0100', '1000', '0111') for test in test_cases: print test, bin2int(test), int(test, 2)