Fast enumeration of combinatorial objects

The problem of ranking (or perfect hashing) is well known in Combinatorial Analysis, Computer Science, and Information Theory. There are widely used methods for ranking permutations of numbers {1, 2, ..., n}, n ≥ 1, for ranking binary words of length n with a fixed number of ones and for many other combinatorial problems. Many of these methods have nonexponential memory size and the time of enumeration c1n c2 bit operations per letter, where c1 > 0, c2 ≥ 1, n → ∞. In this paper we suggest a method which also uses non-exponential memory size and has the time of enumeration O((logn)) bit operations per letter, const > 0, n → ∞.