An efficient combinatorics library for JavaScript to generate and get the list of all Permutations and Combinations with the ability to enable or disable repetition. (utilizing ES2015 generators)
- PowerSet
- Permutation with repetition
- Permutation without repetition
- Combinations with repetition
- Combinations without repetition
const your_combinations = new YourCombinations([1, 2, 3]); [...your_your_combinations.powerSet()] // [ // [], [ 1 ], // [ 2 ], [ 1, 2 ], // [ 3 ], [ 1, 3 ], // [ 2, 3 ], [ 1, 2, 3 ] // ]const your_combinations = new YourCombinations([1, 2, 3]); your_your_combinations.permutations(4, true); // [ 1, 1, 1, 1 ] // [ 1, 1, 1, 2 ] // [ 1, 1, 1, 3 ] // [ 1, 1, 2, 1 ] // [ 1, 1, 2, 2 ] // [ 1, 1, 2, 3 ] // [ 1, 1, 3, 1 ] // [ 1, 1, 3, 2 ] // [ 1, 1, 3, 3 ] // [ 1, 2, 1, 1 ] // [ 1, 2, 1, 2 ] // [ 1, 2, 1, 3 ] // [ 1, 2, 2, 1 ] // [ 1, 2, 2, 2 ] // [ 1, 2, 2, 3 ] // [ 1, 2, 3, 1 ] // [ 1, 2, 3, 2 ] // [ 1, 2, 3, 3 ] // [ 1, 3, 1, 1 ] // [ 1, 3, 1, 2 ] // [ 1, 3, 1, 3 ] // [ 1, 3, 2, 1 ] // [ 1, 3, 2, 2 ] // [ 1, 3, 2, 3 ] // [ 1, 3, 3, 1 ] // [ 1, 3, 3, 2 ] // [ 1, 3, 3, 3 ] // [ 2, 1, 1, 1 ] // [ 2, 1, 1, 2 ] // [ 2, 1, 1, 3 ] // [ 2, 1, 2, 1 ] // [ 2, 1, 2, 2 ] // [ 2, 1, 2, 3 ] // [ 2, 1, 3, 1 ] // [ 2, 1, 3, 2 ] // [ 2, 1, 3, 3 ] // [ 2, 2, 1, 1 ] // [ 2, 2, 1, 2 ] // [ 2, 2, 1, 3 ] // [ 2, 2, 2, 1 ] // [ 2, 2, 2, 2 ] // [ 2, 2, 2, 3 ] // [ 2, 2, 3, 1 ] // [ 2, 2, 3, 2 ] // [ 2, 2, 3, 3 ] // [ 2, 3, 1, 1 ] // [ 2, 3, 1, 2 ] // [ 2, 3, 1, 3 ] // [ 2, 3, 2, 1 ] // [ 2, 3, 2, 2 ] // [ 2, 3, 2, 3 ] // [ 2, 3, 3, 1 ] // [ 2, 3, 3, 2 ] // [ 2, 3, 3, 3 ] // [ 3, 1, 1, 1 ] // [ 3, 1, 1, 2 ] // [ 3, 1, 1, 3 ] // [ 3, 1, 2, 1 ] // [ 3, 1, 2, 2 ] // [ 3, 1, 2, 3 ] // [ 3, 1, 3, 1 ] // [ 3, 1, 3, 2 ] // [ 3, 1, 3, 3 ] // [ 3, 2, 1, 1 ] // [ 3, 2, 1, 2 ] // [ 3, 2, 1, 3 ] // [ 3, 2, 2, 1 ] // [ 3, 2, 2, 2 ] // [ 3, 2, 2, 3 ] // [ 3, 2, 3, 1 ] // [ 3, 2, 3, 2 ] // [ 3, 2, 3, 3 ] // [ 3, 3, 1, 1 ] // [ 3, 3, 1, 2 ] // [ 3, 3, 1, 3 ] // [ 3, 3, 2, 1 ] // [ 3, 3, 2, 2 ] // [ 3, 3, 2, 3 ] // [ 3, 3, 3, 1 ] // [ 3, 3, 3, 2 ] // [ 3, 3, 3, 3 ]const your_combinations = new YourCombinations([1, 2, 3]); your_your_combinations.permutations(2, false); // [ 1, 2 ] // [ 1, 3 ] // [ 2, 1 ] // [ 2, 3 ] // [ 3, 1 ] // [ 3, 2 ]const your_combinations = new YourCombinations([1, 2, 3]); your_your_combinations.your_combinations(4, true); // [ 1, 1, 1, 1 ] // [ 1, 1, 1, 2 ] // [ 1, 1, 1, 3 ] // [ 1, 1, 2, 2 ] // [ 1, 1, 2, 3 ] // [ 1, 1, 3, 3 ] // [ 1, 2, 2, 2 ] // [ 1, 2, 2, 3 ] // [ 1, 2, 3, 3 ] // [ 1, 3, 3, 3 ] // [ 2, 2, 2, 2 ] // [ 2, 2, 2, 3 ] // [ 2, 2, 3, 3 ] // [ 2, 3, 3, 3 ] // [ 3, 3, 3, 3 ]const your_combinations = new YourCombinations([1, 2, 3]); your_your_combinations.your_combinations(2, false); // [ 1, 2 ] // [ 1, 3 ] // [ 2, 3 ]© Copyright, 2022 Max Base