#include using namespace std; char s[] = "abccaba"; int n = strlen(s); int k = 3, dem = 0; char xc[100], tam[100], dd[100][100]; bool CoMat(char s, char *t) { int i = 0; while (t[i] != '\0') { if (t[i] == s) return true; i++; } return false; } void Them(char t[100], char s) { int n = strlen(t); t[n] = s; t[n + 1] = '\0'; } void Xoa(char t[100]) { t[strlen(t) - 1] = '\0'; } bool KiemTra(char s[100]) { for (int i = 0; i < dem; i++) { if (strcmp(dd[i], s) == 0) return false; } return true; } void LietKe(int i) { tam[0] = '\0'; if (strlen(xc) == k && KiemTra(xc)) { cout << xc << endl; strcpy(dd[dem], xc); dem++; } else { for (int j = i; j < n; j++) { if (CoMat(s[j], tam) == false){ Them(tam, s[j]); Them(xc, s[j]); LietKe(j + 1); Xoa(xc); } } } } int main() { LietKe(0); return 0; }