Consider combinations of out of items as represented by bit-strings of length with exactly ones. An algorithm for generating all such combinations so that successive bit-strings differ by the interchange of a single or pair exists only if is even and is odd (except for the trivial cases where ). This was shown by Eades, Hickey, and Read (and others) but no explicit algorithm was given. Later, Carkeet and Eades gave an inefficient, exponential storage implementation. Here, we present an implementation of the algorithm of that is constant average time, and uses linear storage.