在 Mathematica 中重复调用函数

问题描述

我有以下想要转换为 Mathematica 的 Python 代码。但是我完全被困在如何在 Mathematica 中定义我 def shouldSwapdef findPermutations 的函数,然后调用 findPermutations 以获得索引+ 1。我如何在 Mathematica 中定义这样的函数?非常感谢您的帮助!

我的python代码:

def shouldSwap(string,start,curr):
for j in range(strat,curr):
    if string[j] == string[curr]:
         return 0
return 1

def findPermutations(string,index,n):
    if index >= n:
       print(''.join(String))
       return
    for i in range(index,n):
        check = shouldSwap(string index,i)
        if check:
            string[index],string[i] = string[i],string[index]
            findPermutations(string,index + 1,n)
            string[index],string[index]

if __name__ == "__main__":
    string = list("ABCA")
    n = len(string)
    findPermutations(string,n)

我将其转换为 Mathematica 的尝试以失败告终:

string = List[A,B,C,A]
n = Length[string]
index = 0;
If[index>=n,string,Return]
If[index<n,For[i = index,i<n,i+1,If[ 
                For[j = index,j<i,j++,If[string[j] == string[i],Return,Swap[string[index],string[i]] and
             How do I do this???   findPermutations(string,n) and
                                   Swap[string[index],string[i]]
                   ]
                 ]
          ]
      ]

解决方法

Python 代码中有几个语法错误。有什么理由要音译它吗? WL的方法

"ABCA" // Characters // Permutations // Map[StringJoin]

{"ABCA","ABAC","ACBA","ACAB","AABC","AACB","BACA","BAAC","BCAA","CABA","CAAB","CBAA"}

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...