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;
}