以下是一个示例函数,它使用递归来列出所有可能的模型组合:
def list_model_combinations(models, current_combination=[], all_combinations=[]):
# 如果已经遍历完所有模型,则将当前组合添加到所有组合中
if len(models) == 0:
all_combinations.append(current_combination)
return
# 取出当前模型
current_model = models[0]
remaining_models = models[1:]
# 在当前组合中添加当前模型,并递归调用函数
list_model_combinations(remaining_models, current_combination + [current_model], all_combinations)
# 不添加当前模型,并递归调用函数
list_model_combinations(remaining_models, current_combination, all_combinations)
return all_combinations
# 使用示例
models = ['model1', 'model2', 'model3']
combinations = list_model_combinations(models)
print(combinations)
运行以上代码将输出所有可能的模型组合:
[['model1', 'model2', 'model3'], ['model1', 'model2'], ['model1', 'model3'], ['model1'], ['model2', 'model3'], ['model2'], ['model3'], []]
以上代码中的 list_model_combinations
函数接受一个模型列表作为输入,并使用两个额外参数 current_combination
和 all_combinations
来记录当前的模型组合和所有的模型组合。首先,它检查是否已经遍历完所有的模型,如果是,则将当前组合添加到所有组合中并返回。否则,它取出当前模型,递归调用函数两次:一次是在当前组合中添加当前模型的情况,另一次是不添加当前模型的情况。最后,它返回所有的模型组合。