Combinations and Permutations Calculator

Find out how many different ways to choose items.
For an in-depth explanation of the formulas please visit Combinations and Permutations.


images/comb-perm.js

 

For an in-depth explanation please visit Combinations and Permutations.

Power Users!

You can add "Rules" that will reduce the List:

The "has" rule which says that certain items must be included (for the entry to be included).

Example: has 2,a,b,c means that an entry must have at least two of the letters a, b and c.

The "no" rule which means that some items from the list must not occur together.

Example: no 2,a,b,c means that an entry must not have two or more of the letters a, b and c.

The "pattern" rule is used to impose some kind of pattern to each entry.

Example: pattern c,* means that the letter c must be first (anything else can follow)

Put the rule on its own line:

Example: the "has" rule

a,b,c,d,e,f,g
has 2,a,b

Combinations of a,b,c,d,e,f,g that have at least 2 of a,b or c

Rules In Detail

The "has" Rule

The word "has" followed by a space and a number. Then a comma and a list of items separated by commas.

The number says how many (minimum) from the list are needed for that result to be allowed.

Example has 1,a,b,c

Will allow if there is an a, or b, or c, or a and b, or a and c, or b and c, or all three a,b and c.

In other words, it insists there be an a or b or c in the result.

So {a,e,f} is accepted, but {d,e,f} is rejected.

Example has 2,a,b,c

Will allow if there is an a and b, or a and c, or b and c, or all three a,b and c.

In other words, it insists there be at least 2 of a or b or c in the result.

So {a,b,f} is accepted, but {a,e,f} is rejected.

 

The "no" Rule

The word "no" followed by a space and a number. Then a comma and a list of items separated by commas.

The number says how many (minimum) from the list are needed to be a rejection.

Example: n=5, r=3, Order=no, Replace=no

Which normally produces:

{a,b,c} {a,b,d} {a,b,e} {a,c,d} {a,c,e} {a,d,e} {b,c,d} {b,c,e} {b,d,e} {c,d,e}

But when we add a "no" rule like this:

a,b,c,d,e,f,g
no 2,a,b

We get:

{a,c,d} {a,c,e} {a,d,e} {b,c,d} {b,c,e} {b,d,e} {c,d,e}

The entries {a,b,c}, {a,b,d} and {a,b,e} are missing because the rule says we can't have 2 from the list a,b (having an a or b is fine, but not together)

Example: no 2,a,b,c

Allows only these:

{a,d,e} {b,d,e} {c,d,e}

It has rejected any with a and b, or a and c, or b and c, or even all three a,b and c.

So {a,d,e) is allowed (only one out of a,b and c is in that)

But {b,c,d} is rejected (it has 2 from the list a,b,c)

Example: no 3,a,b,c

Allows all of these:

{a,b,d} {a,b,e} {a,c,d} {a,c,e} {a,d,e} {b,c,d} {b,c,e} {b,d,e} {c,d,e}

Only {a,b,c} is missing because that is the only one that has 3 from the list a,b,c

 

The "pattern" Rule

The word "pattern" followed by a space and a list of items separated by commas.

You can include these "special" items:

Example: pattern ?,c,*,f

Means "any item, followed by c, followed by zero or more items, then f"

So {a,c,d,f} is allowed

And {b,c,f,g} is also allowed (there are no items between c and f, which is OK)

But {c,d,e,f} is not, because there is no item before c.

Example: how many ways can Alex, Betty, Carol and John be lined up, with John after Alex.

Use: n=4, r=4, order=yes, replace=no.

Alex, Betty, Carol, John
pattern *,Alex,*,John

The result is:

{Alex,Betty,Carol,John} {Alex,Betty,John,Carol} {Alex,Carol,Betty,John} {Alex,Carol,John,Betty} {Alex,John,Betty,Carol} {Alex,John,Carol,Betty} {Betty,Alex,Carol,John} {Betty,Alex,John,Carol} {Betty,Carol,Alex,John} {Carol,Alex,Betty,John} {Carol,Alex,John,Betty} {Carol,Betty,Alex,John}