1. A method for generating a hierarchical data structure associated with a plurality of arbitrary-length bit strings, the method comprising: a) hashing, for each of the plurality of arbitrary-length bit strings, the arbitrary-length bit string; b) partitioning, for each of the plurality of arbitrary-length bit strings, results of the hashing to a next level of the hierarchical data structure to generate partition results; c) defining a next level bit map based on the partition results; d) repeating acts (a) through (c); and e) storing, for each of the plurality of arbitrary-length bit strings, the arbitrary-length bit string or a pointer thereto, in a memory location, wherein a hash of one of the arbitrary-length bit strings at each level of the hierarchical data structure defines a bit location of the next level bit map, and wherein a concatenation of at least one bit starting at the defined bit location of the next level bit map at each level of the hierarchical data structure defines an address of the memory location storing the arbitrary-length bit string or a pointer thereto.