C++ 如何将置换函数中的for循环转换为递归函数

C++ 如何将置换函数中的for循环转换为递归函数,c++,recursion,permutation,C++,Recursion,Permutation,我的问题是如何将发布代码中的for循环转换为递归函数。我看过一些循环的转换,在递归函数中转换循环有点困难 我正在学习C++,我知道有一种方法将for循环转换为递归函数。在线文章中有一个涉及for循环的置换函数。我想使函数完全递归,但我不知道如何开始 void RecPermute(string soFar, string rest) { if (rest.empty()) { cout << soFar << endl; } else { for

我的问题是如何将发布代码中的for循环转换为递归函数。我看过一些循环的转换,在递归函数中转换循环有点困难

我正在学习C++,我知道有一种方法将for循环转换为递归函数。在线文章中有一个涉及for循环的置换函数。我想使函数完全递归,但我不知道如何开始

void RecPermute(string soFar, string rest)
{
 if (rest.empty()) {
     cout << soFar << endl;
 } else {
     for (int i = 0; i < rest.length(); i++) {
         string remaining = rest.substr(0, i) + rest.substr(i+1);
         RecPermute(soFar + rest[i], remaining);
     }
 }
void RecPermute(字符串当前,字符串剩余)
{
if(rest.empty()){

我相信没有一个简单的方法,因为在某种程度上,它已经是一个recursion@ayun12我同意。这并不简单。@ayun12:它不是“以某种方式”,它已经是递归的了。OP试图使它成为两级递归。