def combine(data, step, select_data, target_num):
if len(select_data) == target_num:
print(select_data)
return
if step >= len(data):
return
select_data.append(data[step])
combine(data, step + 1, select_data, target_num)
select_data.pop()
combine(data, step + 1, select_data, target_num)
if name == 'main':
data = [1, 2, 3, 3, 4, 4]
combine(data, 0, [], 3)
请问如何让结果只显示无重复项的数组
例如
1,2,3
1,2,4
2,3,4
而不显示1,3,3之类的有重复项的数组
def combine(data, step, select_data, target_num):
if len(select_data) == target_num:
print(select_data)
return
if step >= len(data):
return
select_data.append(data[step])
combine(data, step + 1, select_data, target_num)
select_data.pop()
combine(data, step + 1, select_data, target_num)
if __name__ == "__main__":
data = [1, 2, 3, 3, 4, 4]
# 去重
data= list(set(data))
combine(data, 0, [], 3)
if len(select_data)!=len(set(select_data)):
print("有重复了")
def combine(data, step, select_data, target_num):
if len(select_data) == target_num:
print(select_data)
return
if step >= len(data):
return
select_data.append(data[step])
combine(data, step + 1, select_data, target_num)
select_data.pop()
combine(data, step + 1, select_data, target_num)
if __name__ == '__main__':
data = [1, 2, 3, 3, 4, 4]
data = list(set(data))
combine(data, 0, [], 3)