Recursion 嵌套循环的递归实现

Recursion 嵌套循环的递归实现,recursion,go,nested-loops,Recursion,Go,Nested Loops,我试图从字符串生成增量组合,如: // for "23405" 2 3 4 5 23 34 40 05 234 340 405 2340 3405 23405 我正在使用嵌套循环执行此操作: str := "23405" for i := 0; i <= len(str); i++ { for j := 0; j <= i; j++ { fmt.Println(str[j:i]) } } str:=“23405” 对于i:=0;下面是我对递归的尝试

我试图从字符串生成增量组合,如:

// for "23405"
2
3
4
5
23
34
40
05
234
340
405
2340
3405
23405
我正在使用嵌套循环执行此操作:

str := "23405"
for i := 0; i <= len(str); i++ {
    for j := 0; j <= i; j++ {
        fmt.Println(str[j:i])
    }
}
str:=“23405”

对于i:=0;下面是我对递归的尝试:


大声呼喊以寻求帮助~

在Python中使用生成器怎么样?为什么末尾有很多空格?如果需要,请查看正确的输出并尝试改进代码。@nexus66找到了它。当
length=0
Yes时,您仍在进行此操作,但您的输出仍然是相反的:-)请尝试按OP希望的方式提供相同的输出。@nexus66将其作为单独的方法添加:D抱歉延迟,已吃过午饭。
package main

import "fmt"

func reverse(str string, length int, i int) {
  if len(str) > length+i && length > 0 {
    fmt.Println(str[i:length+i])
    reverse(str, length, i+1)
  } else if len(str) == length+i && length > 0 {
    fmt.Println(str[i:length+i])
    reverse(str, length-1, 0)
  }
}

func recIterate(str string, length int, i int) {
  if length > i {
    fmt.Println(str[i:len(str)-length+i+1])
    recIterate(str, length, i+1)
  } else if length == i && length > 0{
    recIterate(str, length-1, 0)
  }
}

func main() {
  str := "234051234"
  recIterate(str, len(str), 0)
  // reverse(str, len(str), 0)
}