我的思路是剥洋葱
python代码如下:
print('输入四个字符') a_list1=input().split() for i in range(len(a_list1)): # abcd为首各循环一次 b_list1 = a_list1[::] # 每一次循环,将为首的删除,剩下的形成新的列表 b_list1.pop(i) #索引删除字符 for j in range(len(a_list1)-2): # bcd为首各循环一次,注意range的范围 c_list1 = b_list1[::] # 每一次循环,将为首的删除,剩下的形成新的列表 c_list1.pop(j) for k in range(len(a_list1) - 3): # cd正向反向输出新列表,注意range的范围 print(a_list1[i],b_list1[j],' '.join(c_list1)) print(a_list1[i],b_list1[j],' '.join(c_list1[::-1]))
结果如下
输入四个字符
a b c d
a b c d
a b d c
a c b d
a c d b
b a c d
b a d c
b c a d
b c d a
c a b d
c a d b
c b a d
c b d a
d a b c
d a c b
d b a c
d b c a
其实可以根据规律建立新的函数,是迭代的代码更加简洁,这里没有给出(其实不会写,懒得想了)