java – 字母表的每个排列最多29个字符?

我正在尝试编写一个程序,该程序将生成一个文本文件,其中包含从一个字符到二十九个字符的字母表的每个可能的排列.我选择了29作为最长的英语单词,每个人都知道是反歧视的英语单词,长度为28个字符.有更长的,但它们主要是技术性和模糊性.

我意识到这会产生大量的字符串.但是我不知道从哪里开始,甚至不知道如何计算出这将产生多少组合.

请回答PHP,Processing,C或Java的解决方案(我只熟悉那些,PHP是首选,但可能没有最好的我应该想象).

或者甚至只是伪代码/想法将不胜感激.

此外,在有人说出来之前,这不是为了暴力强迫或类似的东西.我是一名艺术家,虽然有点不为人知,但我的概念模糊不清.

解决方法:

“置换”一词通常意味着每个字母只出现一次,因此不可能产生超过26个字母的任何排列.无论如何,由于生成的字符串数量太大,您可以使用随机字符串(以下是C代码):

char s[30];
int p;
for (;;) // repeat forever: you cannot use a realistic iteration limit anyway
{
    for (p = 0; p < 29; ++p)
        s[p] = 'a' + rand() % 26;
    s[29] = '\0';
    puts(s);
}
上一篇:python – 需要帮助更快地进行排列


下一篇:c++数字全排列函数