def permute(str,prefix):
if len(str) == 0:
print prefix,
return
permute(str[1:],prefix)
permute(str[1:],prefix+str[0])
permute('123','')
这是解答的结果,和上面二叉树来表示完全一致
3 2 23 1 13 12 123
由于用Python的人并不是很多,所以我也用C写了个程序作为参考
#include
#include
#define BUFFER_SIZE 255
using namespace std;
void permute(char *src,char *prefix)
{
char buf[BUFFER_SIZE];
int len = strlen(prefix);
if (strlen(src) == 0)
{
cout