华为OD机试 - 猜密码问题详解与多语言实现(C++/Java/JavaScript/Python)
前言
密码是信息安全中的关键,而在一些场景下,我们有可能遗忘密码的具体数字组合,只记得密码的部分特性,例如密码由不重复的数字组成,且这些数字是从某个特定范围内选出的。华为OD机试中的"猜密码"问题正是这种场景下的一个典型例题。本文将详细解读该题目,并给出C++、Java、JavaScript和Python的多语言代码实现。
题目描述
小杨申请了一个保密柜,但是他忘记了密码。根据他的记忆,密码由一系列不重复的数字组成。小杨还记得密码数字的范围以及密码的最小长度。基于这些信息,任务是生成所有可能的密码组合,并对这些组合进行排序输出。
规则
- 数字组合不能重复:每个组合中的数字不能重复出现。
- 数字组合按字典序输出:组合中的数字必须按从小到大的顺序排列,输出的组合也必须按照字典序排序。
- 密码的长度:每个密码的长度必须大于等于指定的最小数字数量。
- 如果没有可能的