给定一些正整数生成对象的所有排列。
细节
- 排列是没有固定点的排列。(这意味着在每个排列编号中,都不能位于第个条目中)。
- 输出应包含数字(或)的排列。
- 您也可以始终打印(或分别)的排列,但必须指定。
- 输出必须是确定性的,也就是说,每当调用某个给定作为输入的程序时,输出都应该是相同的(这包括排列顺序必须保持相同),并且完整的输出必须在每次有限的时间(以概率1这样做是不够的)。
- 您可以假设
- 对于某些给定的您可以生成所有排列,也可以选择另一个整数作为索引并打印第个排列(按您选择的顺序)。
例子
请注意,排列顺序不必与此处列出的顺序相同:
n=2: (2,1)
n=3: (2,3,1),(3,1,2)
n=4: (2,1,4,3),(2,3,4,1),(2,4,1,3), (3,1,4,2),(3,4,1,2),(3,4,2,1), (4,1,2,3),(4,3,1,2),(4,3,2,1)