生成Java字符串的所有字符,包括较小的单词,并排除重复字符

生成Java字符串的所有字符,包括较小的单词,并排除重复字符,java,string,logic,character,Java,String,Logic,Character,我正在尝试用Java编写一个代码,它允许我获取像“cat”这样的随机字符串,并生成所有可能的字母组合,包括较短的字符串 标记为重复()的另一个问题的答案不回答此问题。没有一个答案包含较小的单词 例如: c、 空中交通管制,空中交通管制,空中交通管制,空中交通管制,空中交通管制,空中交通管制,空中交通管制,空中交通管制,空中交通管制,空中交通管制,空中交通管制。(我想就这些了) 自始至终,我看到了好几个答案,但我找到的所有答案都是重复使用的。 喜欢 ccc、cca、cct、cac、caa、cat

我正在尝试用Java编写一个代码,它允许我获取像“cat”这样的随机字符串,并生成所有可能的字母组合,包括较短的字符串

标记为重复()的另一个问题的答案不回答此问题。没有一个答案包含较小的单词

例如: c、 空中交通管制,空中交通管制,空中交通管制,空中交通管制,空中交通管制,空中交通管制,空中交通管制,空中交通管制,空中交通管制,空中交通管制,空中交通管制。(我想就这些了)

自始至终,我看到了好几个答案,但我找到的所有答案都是重复使用的。 喜欢 ccc、cca、cct、cac、caa、cat

这个答案似乎是最接近的,但它允许重复使用字母。我在想,也许我可以修改代码来检查这个字符是否已经被使用,但是对于有重复字母的单词,例如cattail,这就变得很难了

任何和所有的帮助都将不胜感激。如果有帮助的话,我会发布任何代码,但是上面的链接是我所能得到的

谢谢

给你

public static void printAnagrams(String prefix, String word) {
    if (word.length() <= 1) {
        System.out.println(prefix + word);
    } else {
        for (int i = 0; i < word.length(); i++) {
            String cur = word.substring(i, i + 1);
            String before = word.substring(0, i);
            String after = word.substring(i + 1);

            printAnagrams(prefix + cur, before + after);
        }
    }
}
publicstaticvoidprintanagrams(字符串前缀、字符串字){

if(word.length()比如说生成一个集合的所有排列?我想是的,但不必重复看这个:在打印之前,通过哈希集、LinkedHashSet或TreeSet运行列表,您可以相当轻松地删除重复项。我更新了标题,以包括您所述的要求,这些要求显然不在建议的列表中重复。我正在投票保留打开状态。这几乎是完美的。但我不知道它是否也会生成较小的单词。例如,从鲶鱼那里获取单词cat,还是所有答案都与原始单词长度相同?是的,所有生成的变位码都与原始字符串长度相同。恐怕我也需要较小的单词。我调整了答案原来的答案,因为我之前没有说清楚