JSFiddle - React, Tailwind, and code Playground
JavaScript
function permute(string) {
function recur(string, prefix) {
if (string.length === 0) {
return [prefix];
} else {
var out = [];
for (var i = 0; i < string.length; i++) {
var pre = string.substring(0, i);
var post = string.substring(i + 1);
out = out.concat(recur(pre + post, string[i] + prefix));
}
return out;
}
}
var distinct = {};
recur(string, "").forEach(function(result) {
distinct[result] = true;
});
return Object.keys(distinct);
}
console.log(permute('123'))