K subsets of an N set

TOMS515, a C++ code which lists the subsets of size K selected from a set of size N.

The text of many ACM TOMS algorithms is available online through ACM: or NETLIB:


The computer code and data files made available on this web page are distributed under the GNU LGPL license.


TOMS515 is available in a C version and a C++ version and a FORTRAN90 version and a MATLAB version and a Python version.

Related Data and Programs:

SUBSET, a C++ library which enumerates combinations, partitions, subsets, index sets, and other combinatorial objects.



  1. Bill Buckles, Matthew Lybanon,
    Algorithm 515: Generation of a Vector from the Lexicographical Index,
    ACM Transactions on Mathematical Software,
    Volume 3, Number 2, June 1977, pages 180-182.

Source Code:

Last revised on 02 May 2020.