t=[1,2,7,9,10,14,18,20]
x={}
for i in t:
x[i]=[]
for i in range(len(t)-1):
for j in range(i+1,len(t)):
if t[j]%t[i]==0:
x[t[i]].append(t[j])
print(x)
res=[]
def dfs(start,path,t):
if x[t[start]]==[]:
res.append(path+[t[start]])
return
for i in range(start,len(t)):
for j in x[t[i]]:
dfs(t.index(j),path+[t[i]],t)
dfs(0,[],t)
print(res)
想重温一下研究生做的一个项目,递归找出列表中所有成等比的序列
[[1, 2, 10, 20], [1, 2, 14], [1, 2, 18], [1, 2, 20], [1, 7, 14], [1, 9, 18], [1, 10, 20], [1, 7, 14], [1, 9, 18], [1, 10, 20], [1, 9, 18], [1, 10, 20], [1, 10, 20], [1, 14], [1, 18], [1, 20], [2, 10, 20], [2, 14], [2, 18], [2, 20], [7, 14], [9, 18], [10, 20]]