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
Program in Go language to Program to Add Two Matrix Using Multi-dimensional Arrays
Golang program for implementation of Longest Common Sub-sequence
Struct Instantiation using new keyword
How to convert Boolean Type to String in Go?
GO Program to Swap Number Without Using Temporary Variables
How do you read cookies in an HTTP request with an HTTP client in Go?