Given a string, generate a list of all possible permutations of the string.
func permutations(string: String) -> [String] { if string.count == 0 { return [""] } var string = string let char = string.removeFirst() let strings = permutations(string: string) var newStrings = [String]() for str in strings { for i in 0 ... str.count { var newString = str if i < str.count { let index = str.index(str.startIndex, offsetBy:i) newString.insert(char, at: index) } else { newString += String(char) } newStrings.append(newString) } } return newStrings } let p = permutations(string:"abc") print("p \(p)")