我正在尝试编写一个Python程序,该程序输出所有通过使用字符形成的所有可能的字符串,c, a, t, d, o
并且g
仅使用递归输出一次。
到目前为止,我已经知道了:
i = ['c', 'a', 't', 'd', 'o', 'g']
counter = 0
def func(i):
global counter
i[counter], i[counter+1] = i[counter+1], i[counter]
print(i)
if counter != 5:
counter += 1
return func(i)
func(i)
编辑:对不起,我是“无礼的”,但我只是从书中抄写了练习内容。这只是本书的纯文本。
抱歉,您不知道您要尝试什么或如何解决该问题。但这是一种方法。
def words(letters, word=''):
letters or print(word)
for letter in letters:
words(letters - {letter}, word + letter)
words(set('catdog'))
该letters or print(word)
仅仅是一个捷径if not letters: print(word)
。Python会or
评估左边的部分,如果那是“真实的”,它将返回该部分,否则返回右边的部分。所以在这里,如果letters
是真实的,也就是说,剩下的字母可以使用了,就是这样。否则,请打印。
也许有些棘手,但我觉得它很自然。您可能已经听说过“停下来,否则我会射击!”,对吧?如果这个人停下来,那就这样。否则,他们会被枪杀。在Python中也是如此。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句