function PrintSubstringWithKDistinctChars(s, k) {
let substrings = []
for (let i = 0; i < s.length; i++) {
let ch = s.charAt(i);
let tmp = "" + ch;
let set = new Set();
set.add(ch);
for (let j = i + 1; j < s.length; j++) {
const next_ch = s.charAt(j);
set.add(next_ch);
tmp += next_ch;
if (tmp.length >= k && set.size == k) {
substrings.push(tmp)
}
}
}
console.log(substrings);
}
const str = "characters";
const k = 4;
PrintSubstringWithKDistinctChars(str, k);
/*
run:
["char", "chara", "charac", "harac", "aract", "ract", "acte", "cter", "ters"]
*/