A technique for generating a list of all N-bit unsigned binary numbers by
starting with an initial number less than some power of 2, successively
multiplying the number by that power of 2 and adding the largest
non-negative number less than that power of 2 such that the new number is
not a duplicate of any of those already generated, and using the
resulting lists to generate efficient hashing and serial decoding
hardware and software.