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 Pancake Sort
Golang program for implementation of Tower of Hanoi Algorithm
Golang program for implementation of Binary Search
Golang program for implementation of AVL Trees
Golang program for implementation of Quick Sort
Golang program for implementation LIFO Stack and FIFO Queue
Golang program for implementation of Knuth–Morris–Pratt (KMP) Algorithm
Golang program for implementation of Merge Sort
Golang program to implement Binary Tree
Golang program to print a matrix in Spiral Format