P16434 [HackerRank] Building a list
普及
题目描述

Chan has decided to make a list of all possible combinations of letters of a given string S. If there are two strings with the same set of characters, print the lexicographically smallest arrangement of the two strings.

abc acb cab bac bca

all the above strings' lexicographically smallest string is abc.

Each character in the string S is unique. Your task is to print the entire list of Chan's in lexicographic order.

for string abc, the list in lexicographic order is given below

a ab abc ac b bc c

Input Format

The first line contains the number of test cases T. T testcases follow.

Each testcase has 2 lines. The first line is an integer N ( the length of the string).

The second line contains the string S.

Output Format

For each testcase, print the entire list of combinations of string S, with each combination of letters in a newline.

Constraints

0< T< 50

1< N< 16

string S contains only small alphabets(a-z)

Sample Input

2
2
ab
3
xyz

Sample Output

a
ab
b
x
xy
xyz
xz
y
yz
z

Explanation

In the first case we have ab, the possibilities are a, ab and b. Similarly, all combination of characters of xyz.

输入格式

见题面

输出格式

见题面

样例输入
2 2 ab 3 xyz
样例输出
a ab b x xy xyz xz y yz z