toms515, an Octave code which lists the subsets of size K selected from a set of size N, by Bill Buckles, Matthew Lybanon.

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


The computer code and data files described and made available on this web page are distributed under the MIT license


toms515 is available in a C version and a C++ version and a Fortran90 version and a MATLAB version and an Octave version and a Python version.

Related Data and Programs:


subset, an Octave code which enumerates combinations, partitions, subsets, index sets, and other combinatorial objects.


Original FORTRAN77 version by Bill Buckles, Matthew Lybanon. This version by John Burkardt.


  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 31 May 2023.