Get permutations of a string without duplicates
by Tarek Faham
HTML
<html>
<body>
<span>Input string:</span><input type="text" name="inString"/>
<input type="button" onclick="getPermutations()" value="Get permutations"/>
<input type="button" onclick="clearOut()" value="Clear"/>
<br/>
<span id="output"></span>
</body>
</html>
JavaScript
function permutation(prmStr) {
var permResult =[];
var permutationGo = function (prmStr, prmCombination){
if (prmStr.length === 0 && prmCombination) {
permResult.push(prmCombination);
} else {
var chr;
var newCombination;
for (var i=0; i < prmStr.length; i++) {
chr = prmStr[i];
if (prmStr.indexOf(chr) !== i) continue;
var rem = prmStr.substring(0, i) + prmStr.substring(i+1);
newCombination = prmCombination + chr;
permutationGo(rem, newCombination);
}
}
}
if (typeof prmStr === "string")
permutationGo(prmStr, "");
else return "Error: Must pass string type."
return permResult;
}
function getPermutations() {
debugger;
var inStr = document.querySelector("[name='inString'").value;
console.log(inStr);
var outPerm = permutation(inStr);
var outText = "";
for (let e of outPerm) {
outText += e + '\n'
}
var outElm = document.querySelector("#output");
outElm.innerText = outText;
}
function clearOut() {
document.querySelector("#output").innerText=null;
document.querySelector("[name='inString'").value = null;
}