Every subset, with the binary word that produced it — and the counting argument that says there are 2ⁿ.
List every subset
With the binary word that produced each one.
Braces are optional. Up to twelve elements; duplicates are collapsed.
P({a, b, c}) — n = 3
8 subsets
Building a subset means deciding, for each of the 3 elements, whether to include it: 3 independent yes/no choices, so 2^3 = 8 subsets. Reading each choice as a bit makes the correspondence exact — subset number 5 is the one whose binary word is 101.
Subsets
8
2^3
Proper subsets
7
all of them except the set itself
Elements
3
all distinct
Row sum check
8 = 8
the binomial coefficients add to 2ⁿ
Every subset, with its binary word
Each subset with the bit pattern that generated it
#
Binary
Subset
Size
0
000
∅ ← the empty set
0
1
100
{a}
1
2
010
{b}
1
3
001
{c}
1
4
110
{a, b}
2
5
101
{a, c}
2
6
011
{b, c}
2
7
111
{a, b, c} ← the set itself
3
How many of each size
Count of subsets of each size, checked against the binomial coefficients
Size
0
1
2
3
Count
1
3
3
1
C(3, k)
1
3
3
1
That bottom row is a row of Pascal’s triangle, computed separately and compared — it is a check on the list above, not a caption for it.
∈ versus ⊆
a ∈ {a, b, c} — a is an element of the set.
a ⊄ {a, b, c} — a is not a SET, so it cannot be a subset of one.
{a} ⊆ {a, b, c} — the one-element set containing a is a subset.
{a} ∈ P({a, b, c}) — and inside the power set, that same subset becomes an element.
P(P(A)) would have 2^8 = 256 elements. The exponent is itself an exponential, which is why this question stops being answerable by listing almost immediately.
The size counts add to 8, which is 2^3— computed from the list, not assumed.
What this tool shows
Every subset, with the bit pattern that produced it — because that correspondence is the proof there are 2ⁿ of them.
All 2ⁿ subsets, each with the bit pattern that generated it
The count of each size, checked against the binomial coefficients
The empty set and the set itself, both marked
The element-versus-subset distinction, using your own elements
Every subset, with its binary word Sizes checked against C(n,k) ∈ versus ⊆ spelled out Free, no signup
Free, no signup — sizes checked against Pascal’s triangle.
Updated 6 September 2026 · Works in any browser, no installation
A set with n elements has exactly 2ⁿ subsets, because building one means making n independent yes-or-no decisions. {a, b, c} has 8 of them, and each corresponds to one three-bit word: 000 → ∅, 100 → {a}, 010 → {b}, 001 → {c}, and so on.
At a glance
Formula shown
|P(A)| = 2^|A|. Subset number k is the one whose binary word has a 1 in position i exactly when element i is included.
Scenario support
Any finite set of up to twelve elements.
Educational estimate
Planning support from the values you enter — not professional advice.
Why exactly 2ⁿ, and not some other number
Building a subset means going through the elements one at a time and deciding, for each, whether to include it. Those decisions are independent — taking a does not constrain whether you take b — so the number of subsets is 2 × 2 × … × 2, n times.
That makes the subsets correspond exactly to the n-bit binary words. {a, b, c} gives 8 subsets and 000 through 111 is 8 words, and the tool lists them side by side so the correspondence is visible rather than claimed.
Building a subset means deciding, for each of the 3 elements, whether to include it: 3 independent yes/no choices, so 2^3 = 8 subsets. Reading each choice as a bit makes the correspondence exact — subset number 5 is the one whose binary word is 101.
The empty set counts, and so does the whole set
Both ∅ and A itself are subsets of A, which is why P({1, 2}) has 4 members rather than 2. The definition of subset — every element of the smaller is in the larger — is satisfied vacuously by ∅ and trivially by A.
The consequence people find strangest is P(∅). The empty set has no elements, so it has exactly one subset: itself. |∅| = 0 and |P(∅)| = 1 — and 2⁰ = 1, so the formula was right all along.
P(∅) = {∅}, a set with exactly one element. |∅| = 0 but |P(∅)| = 1.
∈ and ⊆ are different claims about different things
This is the error the topic generates most reliably, and it is worth stating with actual elements rather than in the abstract:
a ∈ {a, b, c} — a is an element of the set.
a ⊄ {a, b, c} — a is not a SET, so it cannot be a subset of one.
{a} ⊆ {a, b, c} — the one-element set containing a is a subset.
{a} ∈ P({a, b, c}) — and inside the power set, that same subset becomes an element.
The rule underneath: ∈ relates an ELEMENT to a set, and ⊆ relates a SET to a set. A thing is almost never both an element of A and a subset of A, so if you have written both about the same object, one of them is wrong.
The power set inverts the relationship, which is what makes it a good place to practise the distinction. {a} is a subset of {a, b, c} and an ELEMENT of its power set, and both statements are about the same object.
The sizes are a row of Pascal’s triangle
Exactly C(n, k) of the subsets have k elements, and those counts add to 2ⁿ. That is Pascal’s triangle appearing where you might not expect it.
For {a, b, c} the counts by size are 1, 3, 3, 1 — the row 1, 3, 3, 1. For {v, w, x, y, z} they are 1, 5, 10, 10, 5, 1, adding to 32.
The tool computes C(n, k) independently and compares it against the generated list, so the row is a CHECK on the enumeration rather than a caption for it. If a subset were ever missed, one of those counts would come up short. The Binomial Coefficient Calculator computes the same numbers directly.
Proper subsets, and what “proper” excludes
A proper subset is any subset except the set itself, so there are 2ⁿ − 1 of them — 7 for {a, b, c}.
Note that ∅ is still counted. “Proper” excludes exactly one thing, the whole set, and nothing else. Some texts also exclude ∅ and call what is left “non-trivial”, which is a third count worth being alert to when a question specifies it.
The symbol is where this gets genuinely ambiguous: ⊂ means “subset” in some texts and “proper subset” in others. The Subset Calculator writes ⊆ and ⊊ instead, which are unambiguous, and says so rather than picking one silently.
How fast this grows, and where listing stops
2ⁿ doubles with every element added. Ten elements gives 1,024 subsets; twenty gives over a million; fifty gives more than the estimated number of atoms in a human body.
P(P(A)) would have 2^8 = 256 elements. The exponent is itself an exponential, which is why this question stops being answerable by listing almost immediately.
Which is why the counting argument matters more than the list. For any n past about five, the useful answer is 2ⁿ and the sizes, not an enumeration — and the argument that produces 2ⁿ works for every n, while the listing works for the small ones only.
Duplicates are collapsed first: {a, b} has 2 distinct elements, not 3, so its power set has 4 members. A set has no repeats — writing an element twice does not put it in twice.
Sources and methodology
Set notation and the power-set construction are standard; the reference below carries the canonical definitions.
Method. Every figure on this page comes from src/lib/power-set.ts over src/lib/algebra/sets.ts. Subsets are generated by binary counting rather than by recursion, which is what makes the bit pattern beside each one exact rather than reconstructed. The per-size counts are compared against C(n, k) computed by the multiplicative formula, independently of the enumeration. That engine is verified on every change against 57 hand-written assertions, including that the size counts always sum to 2ⁿ and always match the binomial coefficients. The count and the per-case breakdown are published on the formula verification page.
Related calculators
Where this goes next:
SubsetTest whether one set is a subset, a proper subset, equal or disjoint — and when the answer is no, name the exact element that breaks it.
Union and IntersectionSix set operations on two or three sets at once, with the Venn regions, inclusion-exclusion checked against the real counts, and De Morgan verified on your own sets.
Binomial Coefficientn choose k exactly on big integers, by the multiplicative formula that never builds a number bigger than the answer — with Pascal's rule, the row it sits in, and permutations beside it.
Truth Table GeneratorBuild a truth table with a column for every sub-expression, classify the result, compare two expressions with a named counterexample row, and read DNF and CNF straight off the table.
Interval NotationConvert between inequality, interval notation, set-builder form and a number-line graph in every direction, including absolute values, unions and the empty set.
Factoring TrinomialsFactor a trinomial by the AC method with every factor pair of ac listed, the common factor taken out first, and the answer multiplied back out to check it.
The power set is where the element-versus-subset distinction becomes unavoidable. The Subset Calculator tests containment directly and names the element that breaks it, and the Binomial Coefficient Calculator computes the size counts on their own.
Educational use disclaimer
This calculator lists the power set of a finite set of up to twelve elements. Duplicate entries are collapsed, since a set has no repeats. Elements are treated as opaque labels — one level of nesting is parsed, so {{1,2},{3}} works, but deeper structure is not analysed.
Published the power set page: subsets generated by binary counting, with the bit pattern shown beside each one so the 2ⁿ is visible rather than asserted.
Checks the count of subsets of each size against C(n, k) computed independently, and their sum against 2ⁿ.
Spells out the ∈ versus ⊆ distinction using the reader's own elements, which is the commonest error in the topic.
Add this calculator to your site
Responsive embed — and private: nothing your visitors type leaves their browser.