将长度的前置-追加序列定义为可以通过以下过程生成n
的数字的排列1, 2, ..., n
:
从数字开始
1
。用于从每个数字
2
到n
,放置这个号码到该序列的开头或结尾(或前置或追加它,顺序因此得名)。
例如,这是生成长度为4的前置-添加序列的有效方法:
1
21 [beginning]
213 [end]
2134 [end]
您的任务是构建一个程序或函数,该程序或函数将一个n
从数字3
到的数字30
作为输入,并按n
字典顺序打印或返回所有长度的前-后加序列(如果您输出的是字符串而不是列表,则表示大于9的数字以字母表示a-u
,以保留字符串长度)。例如,这是以下命令n = 4
:
1234 [RRR]
2134 [LRR]
3124 [RLR]
3214 [LLR]
4123 [RRL]
4213 [LRL]
4312 [RLL]
4321 [LLL]
通常,长度为2 n-1个前置-追加排列n
。
您不得在代码中使用任何使用您语言的内置排序功能。以任何语言进行此操作的最短程序都会胜出。
a-u
。我们可以只输出数字列表吗?