permute
Generate all unique permutations of the inner content’s characters as separate lines. If the number of permutations exceeds a safe threshold, display an error or warning message instead.
Created by: hackvertor
Installed 1 times
Viewed: 0
Category: Math
Created on: Friday, September 5, 2025 at 8:12:55 PM
Updated on: Friday, September 5, 2025 at 8:12:55 PM
Tag arguments
[
{
"type": "number",
"help": "Maximum number of permutations to generate (default: 720)",
"defaultValue": "720"
}
]
Code
class permute {
encode(input, maxPerms) {
maxPerms = maxPerms || 720;
const arr = input.split("");
const results = new Set();
function generate(prefix, remaining) {
if (results.size >= maxPerms) return;
if (remaining.length === 0) {
results.add(prefix);
} else {
for (let i = 0; i < remaining.length; i++) {
generate(
prefix + remaining[i],
remaining.slice(0, i) + remaining.slice(i + 1),
);
if (results.size >= maxPerms) return;
}
}
}
generate("", arr.join(""));
if (results.size >= maxPerms && arr.length > 1) {
throw new Error(
`Too many permutations (${results.size}); limit is ${maxPerms}`,
);
}
return Array.from(results).join("\n");
}
}