# Subsets

Subsets[list]

gives a list of all possible subsets of list.

Subsets[list,n]

gives all subsets containing at most n elements.

Subsets[list,{n}]

gives all subsets containing exactly n elements.

Subsets[list,{nmin,nmax}]

gives all subsets containing between nmin and nmax elements.

Subsets[list,nspec,s]

limits the result to the first s subsets.

Subsets[list,nspec,{s}]

gives if possible the s subset.

# Details • Subsets[list] gives the power set of list.
• Subsets[list] orders subsets with shortest first, and later elements in list omitted first.
• If the elements of list are in the order returned by Sort, then the complete result from Subsets[list] will also be in this order.
• Subsets[list,All] is equivalent to Subsets[list].
• Subsets[list,{nmin,nmax,dn}] gives subsets containing nmin, nmin+dn, elements.
• Subsets[list,nspec,spec] gives the same result as Take[Subsets[list,nspec],spec], provided that the elements specified by spec are present.

# Examples

open allclose all

## Basic Examples(2)

All possible subsets (power set):

All possible subsets containing up to 2 elements:

Subsets containing exactly 2 elements:

## Scope(4)

The first 5 subsets containing 3 elements:

All subsets with even length:

The 69381 subset:

All subsets of {a,b,c,d}:

The odd-numbered subsets of {a,b,c,d} in reverse order:

## Applications(7)

Find all ways to pick 3 elements from 4:

Draw lines between all pairs of points in an octagon:

Construct an elementary symmetric polynomial:

All possible subsets of the divisors of 10:

Find integers that have exactly 3 nonzero binary digits:

Join all possible pairs of 20 random points in 3D:

Draw lines between all pairs of points in a cube:

## Properties & Relations(3)

Subsets picks out first the elements that appear first in the input:

Different occurrences of the same element are treated as distinct:

Tuples gives all possible combinations and reorderings of elements:

## Possible Issues(1)

Subsets[a,b,c]===Take[Subsets[a,b],c] only when all requested items are present:

When items requested by c are missing, the ones present are returned: To suppress the warning message, use Off:

## Neat Examples(2)

Polygons formed from all possible triples of random points: