fun swap(str: String, i: Int, j: Int): String {
val chars = str.toCharArray()
val temp = chars[i]
chars[i] = chars[j]
chars[j] = temp
return String(chars)
}
fun generatePermutation(str: String, l: Int, r: Int) {
if (l == r) {
println(str)
} else {
for (i in l..r) {
val swapped = swap(str, l, i)
generatePermutation(swapped, l + 1, r)
}
}
}
fun main() {
val s = "ABC"
generatePermutation(s, 0, s.length - 1)
}
/*
run:
ABC
ACB
BAC
BCA
CBA
CAB
*/