Golang program to print all Permutations of a given string
A permutation, is a rearrangement of the elements of an ordered list S into a one-to-one correspondence with S itself. A string of length n has n! permutation. Let's take an example of "ABCD" and write a program to generate all possible permutation and combinations of string in Golang.
Example
package main
import (
"fmt"
)
func join(ins []rune, c rune) (result []string) {
for i := 0; i <= len(ins); i++ {
result = append(result, string(ins[:i])+string(c)+string(ins[i:]))
}
return
}
func permutations(testStr string) []string {
var n func(testStr []rune, p []string) []string
n = func(testStr []rune, p []string) []string{
if len(testStr) == 0 {
return p
}else {
result := []string{}
for _, e := range p {
result = append(result, join([]rune(e), testStr[0])...)
}
return n(testStr[1:], result)
}
}
output := []rune(testStr)
return n(output[1:], []string{string(output[0])})
}
func main() {
d := permutations("ABCD")
fmt.Print(d)
}
Most Helpful This Week
Golang program for implementation of Comb Sort
Golang program for implementation of Linked List
Golang program to generate number of slices permutations of number entered by user
Golang program for implementation of Shell Sort
Golang program for implementation of Median of Medians
Golang program for implementation of Interpolation Search
Golang program for implementation of Random Maze Generator
Golang program for implementation of Levenshtein distance
Golang program for implementation of Quick Sort
Golang program for implementation of Pancake Sort