How to generate all possible permutations of a string in Kotlin

1 Answer

0 votes
fun permutations(str: String): List<String> {
    if (str.isEmpty()) {
        return listOf("")
    }

    val result = mutableListOf<String>()
    
    for (i in str.indices) {
        val firstChar = str[i]
        val remainingChars = str.substring(0, i) + str.substring(i + 1)
        val subPermutations = permutations(remainingChars)

        for (subPermutation in subPermutations) {
            result.add(firstChar + subPermutation)
        }
    }
    
    return result
}

fun main() {
    val str = "abc"
    
    val allPermutations = permutations(str)
    
    allPermutations.forEach { println(it) }
}


 
/*
run:

abc
acb
bac
bca
cab
cba
 
*/

 



answered Jan 5, 2025 by avibootz
...