Code consolidation

Hi everyone, another noob question im afraid.

I have a need to go through a sequence 1,2,3,4,5 repeated 5 times, then 2,3,4,5,1 repeated 5 times etc. through to 5,1,2,3,4 repeated 5 times.

I can achieve this long hand, as in the code below, but there must be a better way?

Can anyone help please?

oid main_sequence() {

  while (questioncount <= 26)
  {
    if (player == 1) {
      //do stuff
      player = 2;
      questioncount = questioncount + 1;
    }
    if (questioncount >= 26) {
      break;
    }
    if (player == 2) {
      //do stuff
      player = 3;
      questioncount = questioncount + 1;
    }
    if (questioncount >= 26) {
      break;
    }
    if (player == 3) {
      //do stuff
      player = 4;
      questioncount = questioncount + 1;
    }
    if (questioncount >= 26) {
      break;
    }
    if (player == 4) {
      //do stuff
      player = 5;
      questioncount = questioncount + 1;
    }
    if (questioncount >= 26) {
      break;
    }
    if (player == 5) {
      //do stuff
      player = 1;
      questioncount = questioncount + 1;
    }
    if (questioncount >= 26) {
      break;
    }
  }
}


void players5() {

  main_sequence();

  player = 2;
  questioncount = 1;
  main_sequence();

  player = 3;
  questioncount = 1;
  main_sequence();

  player = 4;
  questioncount = 1;
  main_sequence();

  player = 5;
  questioncount = 1;
  main_sequence();

}


void setup() {
  
  players5();
  
}

void loop() {
}

capture the sequence in an array

#define SEQ_SIZE  5
int seq [SEQ_SIZE] = { 1, 2, 3, 4, 5};

create a function that steps thru an array a specified # of locations, starting at any index and properly wrapping.

call that function with appropriate arguments to extract values from the array and process them