Python 程序使用递归按字典顺序打印字符串的所有排列
pythonserver side programmingprogramming更新于 2023/12/23 7:39:00
当需要使用递归按字典顺序打印字符串的所有排列时,会定义一种方法,该方法使用‘for’循环遍历元素序列,并使用‘join’方法连接元素。
以下是同样的演示 −
示例
from math import factorial def lexicographic_permutation_order(s): my_sequence = list(s) for _ in range(factorial(len(my_sequence))): print(''.join(my_sequence)) next = next_in_permutation(my_sequence) if next is None: my_sequence.reverse() else: my_sequence = next def next_in_permutation(my_sequence): if len(my_sequence) == 0: return None next = next_in_permutation(my_sequence[1:]) if next is None: my_sequence[1:] = reversed(my_sequence[1:]) q = 1 while q < len(my_sequence) and my_sequence[0] > my_sequence[q]: q += 1 if q == len(my_sequence): return None my_sequence[0], my_sequence[q] = my_sequence[q], my_sequence[0] return my_sequence else: return [my_sequence[0]] + next my_input = input('输入一个字符串 : ') print("字符串为:") print(my_input) print("正在调用该方法...") lexicographic_permutation_order(my_input)
输出
输入一个字符串 : hey 该字符串为 : hey 正在调用该方法... hey hye yeh yhe hey hye
解释
已导入所需包。
定义了一个名为 ‘lexicographic_permutation_order’ 的方法,可帮助查找元素的字典顺序。
方法 ‘next_in_permutation’帮助确定字符串中的下一个排列。
用户输入一个字符串,并显示在控制台上。
通过传递此字符串作为参数来调用该方法。
输出显示在控制台上。