Print all permutations of selected length characters with repetition in CPP

python permutations without repetition
print all permutations of a string without duplicates java
python itertools permutations with repetition
permutation c++
print all permutations of an array
permutation recursion c++
python program to print all permutations of a string
generate all possible combinations of a set of characters

This code just prints numbers! What should I do to print string?!

for example, I choose 5 for length with ABC and the output should be:

aaaaa
aaaab
aaaac
aaaba
aaabb
aaabc
aaaca
aaacb
aaacc
aabaa
aabab
aabac
aabba
aabbb
aabbc
aabca
aabcb
aabcc
aacaa
aacab
aacac
aacba
aacbb
aacbc
aacca
aaccb
aaccc
abaaa
abaab
abaac
ababa
ababb
ababc
abaca
abacb
abacc
abbaa
abbab
abbac
abbba
abbbb
abbbc
abbca
abbcb
abbcc
abcaa
abcab
abcac
abcba
abcbb
abcbc
abcca
abccb
abccc
acaaa
acaab
acaac
acaba
acabb
acabc
acaca
acacb
acacc
acbaa
acbab
acbac
acbba
acbbb
acbbc
acbca
acbcb
acbcc
accaa
accab
accac
accba
accbb
accbc
accca
acccb
acccc
baaaa
baaab
baaac
baaba
baabb
baabc
baaca
baacb
baacc
babaa
babab
babac
babba
babbb
babbc
babca
babcb
babcc
bacaa
bacab
bacac
bacba
bacbb
bacbc
bacca
baccb
baccc
bbaaa
bbaab
bbaac
bbaba
bbabb
bbabc
bbaca
bbacb
bbacc
bbbaa
bbbab
bbbac
bbbba
bbbbb
bbbbc
bbbca
bbbcb
bbbcc
bbcaa
bbcab
bbcac
bbcba
bbcbb
bbcbc
bbcca
bbccb
bbccc
bcaaa
bcaab
bcaac
bcaba
bcabb
bcabc
bcaca
bcacb
bcacc
bcbaa
bcbab
bcbac
bcbba
bcbbb
bcbbc
bcbca
bcbcb
bcbcc
bccaa
bccab
bccac
bccba
bccbb
bccbc
bccca
bcccb
bcccc
caaaa
caaab
caaac
caaba
caabb
caabc
caaca
caacb
caacc
cabaa
cabab
cabac
cabba
cabbb
cabbc
cabca
cabcb
cabcc
cacaa
cacab
cacac
cacba
cacbb
cacbc
cacca
caccb
caccc
cbaaa
cbaab
cbaac
cbaba
cbabb
cbabc
cbaca
cbacb
cbacc
cbbaa
cbbab
cbbac
cbbba
cbbbb
cbbbc
cbbca
cbbcb
cbbcc
cbcaa
cbcab
cbcac
cbcba
cbcbb
cbcbc
cbcca
cbccb
cbccc
ccaaa
ccaab
ccaac
ccaba
ccabb
ccabc
ccaca
ccacb
ccacc
ccbaa
ccbab
ccbac
ccbba
ccbbb
ccbbc
ccbca
ccbcb
ccbcc
cccaa
cccab
cccac
cccba
cccbb
cccbc
cccca
ccccb
ccccc

Code:

#include <stdio.h>
#include <list>
#include <string>
#include <iostream>
using namespace std;



int outputDigit;
string input[1000];
int num;
string final;
int z=0;
struct Generator
{
public:
    Generator(int s): cSlots(s)
    {
        a = new int[s];
        for (int i = 0; i < cSlots - 1; i++) {
            a[i] = 1;
        }
        a[cSlots - 1] = 0;
        nextInd = cSlots;
    }
    ~Generator()
    {
        delete a;
    }

    bool doNext()
    {
        for (;;)
        {
            if (a[nextInd - 1] == cValues) {
                nextInd--;
                if (nextInd == 0)
                    return false;
            }
            else {
                a[nextInd - 1]++;
                while (nextInd < cSlots) {
                    nextInd++;
                    a[nextInd - 1] = 1;
                }
                return true;
            }
        }
    }

    void doPrint()
    {
        for (int i = 0; i < cSlots; i++) {
            num=a[i];
            cout<<num;
        }
        printf("\n");
    }

public:
    int *a;
    int cSlots;
    int cValues;
    int nextInd;
};

int main()
{
    cout<<"enter outputDigits";
    cin>>outputDigit;

    Generator g(outputDigit);

    while (g.doNext()) {
        g.doPrint();
    }

    return 0;
}

but the output is

enter outputDigits5
11121
11122
11123
11124
11125
11126
11127
11128
11129
111210
111211
111212
111213
111214
111215
111216
111217
111218
111219
111220
111221
111222
111223
111224
111225
111226
111227
111228
111229
111230
111231
111232
111233
111234
111235......

You can do a simple exhaustive search.

#include <iostream>
#include <string>

using namespace std;

void enumerate(const string& s, int n, string t = "")
{
    if (n == 0)
        cout << t << endl;
    else
    {
        for (char c : s)
            enumerate(s, n - 1, t + c);
    }
}

int main()
{
    enumerate("abc", 5);
}

Complexity: O(s.size()^n)

Print all permutations with repetition of characters in C++, Print all permutations with repetition of characters in C++ Repeating of characters of the string is allowed. The printing of permutation should be done in alphabetical order (lexicographically sorted order). To solve this problem, we need to use fix and recur logic. Note that there are n! permutations and it requires O(n) time to print a a permutation. Note : The above solution prints duplicate permutations if there are repeating characters in input string. Please see below link for a solution that prints only distinct permutations even if there are duplicates in input.

What's cValues?

I know that this answer will not give you the right answer directly. However, I'll advise you to make sure that you:

• initialize all attributes in the constructor.

• avoid using global members.

• use more descriptive names.

• try to reproduce your bugs with an input of smaller size first (e.g. 2 or 3).

Regards,

All permutations of length k from n characters with repetition in CPP , The idea is to start from an empty output string (we call it prefix in following code). One by one add all characters to prefix. For every character added, print all possible strings with current prefix by recursively calling for "length" equals to "length"-1. Update: this update is writen answring the following spec. Generate all binary permutations such that there are more or equal 1's than 0's before every point in all permutations Print consecutive characters together in a line Print all valid words that are possible using Characters of Array

A hard code solution would be:

const char choices[] = {'a', 'b', 'c'};
for (int a1 : choices) {
  for (int a2 : choices) {
    for (int a3 : choices) {
      for (int a4 : choices) {
        for (int a5 : choices) {
            do_job(a1, a2, a3, a4, a5);
        }
      }
    }
  }
}

You may use the following for a generic way (putting all as into vector):

template <typename T>
bool increase(const std::vector<T>& v, std::vector<std::size_t>& it)
{
    for (std::size_t i = 0, size = it.size(); i != size; ++i) {
        const std::size_t index = size - 1 - i;
        ++it[index];
        if (it[index] >= v.size()) {
            it[index] = 0;
        } else {
            return true;
        }
    }
    return false;
}

template <typename T>
void do_job(const std::vector<T>& v, const std::vector<std::size_t>& it)
{
    for (const auto e : it) {
        std::cout << v[e] << " ";
    }
    std::cout << std::endl;
}

template <typename T>
void iterate(const std::vector<T>& v, std::size_t size)
{
    std::vector<std::size_t> it(size, 0);

    do {
        do_job(v, it);
    } while (increase(v, it));
}

Demo

Permutations with repetitions, In case you ever want to just display the string (if you have something like "AAA"): // if a different character from the first is not found // std::string::npos� In this problem, we are given a string of n characters and we have to print all permutations of characters of the string. Repeating of characters of the string is allowed. The printing of permutation should be done in alphabetical order (lexicographically sorted order). Let’s take an example to understand the topic better : Input: XY

Print all permutations with repetition of characters, Once all permutations starting with the first character are printed, fix the second Dec 08, 2007 � We know that the number of permutations with repetition is n^r where n is When the repetition of items is allowed, at every step of selection from the set of 'n' Print all permutations with repetition of characters in C++ Print all� Print all permutations of a string in Java; Check if a binary string contains all permutations of length k; Generate all permutations of a string that follow given constraints; Write a program to print all permutations of a given string; Check if given string can be formed by two other strings or their permutations; Print all lexicographical

All permutations with repetition, Print all of the possible ways to write a string of length N from the characters in To refer to combinations in which repetition is allowed, the terms k-selection, How to generate all Permutations - posted in C/C++ Tutorials: Problem: Given a� Print all the permutations of a string without repetition using Collections in Java Last Updated: 03-09-2019 Given a string str , the task is to print all the permutations of str .

Generate all possible combinations of a set of characters javascript, This is a C++ program to generate all possible combinations of given list of This algorithm print all the possible combination of each length from the given array. First is, we select it, means put true in check[] and increment currLen and start. And we have to make all the permutations of the digits 2, 3 and 4. So, we will make the permutations of 2, 3 and 4 by keeping 2 fixed. Thus the numbers obtained are: 1234 1243. Now, we will fix 3 out of 2, 3 and 4. 1324 1342. Again, keeping 4 fixed out of 2, 3 and 4. 1423 1432. Now, we have all the numbers which can be made by keeping 1 at the

Comments
  • Please edit to remove unneeded empty lines from you code and choose a smaller example, maybe with 4 or 3 instead of 5. Both to make the post more readable and get potential helpers into a better and more helpful mood.
  • @Some I usually like your contributions, but OP could not have done that edit without being told by system to give more helpful prose with all that code... And I am sure that would have been a good thing, see my above comment.
  • actually, I searched a lot but it wasn't what I want or it wasn't written by CPP anyway thank you it works
  • do you need v in increase, and not just max_index?
  • @Caleth: v.size() is indeed enough. I adapted one of my answer to similar but different question which use the vector.