用户输入一个字符串和一个长度为m的方法,该方法应该是回文的所有可能的大小为m的子集组合。这应该递归进行。程序应该接受这样的输入:
is_palindrome("peel",3)
它应该输出回文字符串中长度为m(此处为3)的所有不同字母组合。有两个“ ele”和“ epe”,因为在不同的索引处有两个不同的“ e”。
Output : ['ele','ele','epe','epe']
我知道如何执行正常的is_palindrome递归方法:
def is_palindrome(string):
if(len(string)==1):
return True
if(string[0]!=string[len(string)-1]):
return False
return is_palindrome(string[1:-1])
老实说,我最大的问题是如何将字符串递归分解为长度为m的不同子字符串,我知道我可以轻松使用其他方法和函数或itertools或其他库,但是此练习的重点是了解如何递归应用。有一个递归的解决方案(正如我的书所指出的那样),所以我想可以不借助itertools来做到这一点?
感谢您的帮助。