How to generate all possible permutations of a string in Swift

1 Answer

0 votes
import Foundation

func create_permutations(_ str: String) -> [String] {
    var result = [String]()
    var chars = Array(str)
    permutation(&chars, 0, &result)
    
    return result
}

private func permutation(_ chars: inout [Character], _ index: Int, _ result: inout [String]) {
    if index == chars.count {
        result.append(String(chars))
        return
    }
    for i in index..<chars.count {
        chars.swapAt(index, i)
        permutation(&chars, index + 1, &result)
        chars.swapAt(index, i) // backtrack
    }
}

let result = create_permutations("abc")

print(result)



/*
run:

["abc", "acb", "bac", "bca", "cba", "cab"]

*/

 



answered Jan 5, 2025 by avibootz
...