#include using namespace std; int n = 0; void swap(char *a, char *b) { int m; m = *a; *a = *b; *b = m; } void pailie(string str, int k, int m) { int i; if (k > m) { int a = str.find('A'); int b = str.find_last_of('A'); int c = str.find('2'); int d = str.find_last_of('2'); int e = str.find('3'); int f = str.find_last_of('3'); int g = str.find('4'); int l = str.find_last_of('4'); if (b - a == 2 && d - c == 3 && f - e == 4 && l - g == 5) { cout << str << endl; } } else { for (i = k; i <= m; i++) { swap(&str[k], &str[i]); pailie(str, k + 1, m); swap(&str[k], &str[i]); } } } int main() { string str = "AA223344"; pailie(str, 0, 7); return 0; }