JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>
JavaScript
function permut(string) {
if (string.length < 2) return string;
var permutations = [];
for (var i = 0; i < string.length; i++) {
var char = string[i];
console.log(`char`, char);
// skip duplicates
if (string.indexOf(char) !== i) continue;
var remainingString = string.slice(0, i) + string.slice(i + 1, string.length);
console.log(`remaining string:`, remainingString);
for (var subPermutation of permut(remainingString)) {
permutations.push(char + subPermutation)
}
}
console.log(permutations);
return permutations;
}
var myString = "121";
permutations = permut(myString);
/* for (permutation of permutations) console.log(permutation) */