How do you plan to solve it?
 
 
int ledPins[] = {7, 6, 5, 4};
int buttonPin = 2;
int pattern = 1;
int lastButtonState = HIGH;
unsigned long lastDebounce = 0;
unsigned long debounceDelay = 50;
void setup() {
  for (int i = 0; i < 4; i++) {
    pinMode(ledPins[i], OUTPUT);
  }
  pinMode(buttonPin, INPUT_PULLUP);
}
void loop() {
  int reading = digitalRead(buttonPin);
  if (reading == LOW && lastButtonState == HIGH && (millis() - lastDebounce) > debounceDelay) {
    pattern++;
    if (pattern > 5) pattern = 1;
    lastDebounce = millis();
  }
  lastButtonState = reading;
  switch (pattern) {
    case 1: pattern1(); break;
    case 2: pattern2(); break;
    case 3: pattern3(); break;
    case 4: pattern4(); break;
    case 5: pattern5(); break;
  }
}
void pattern1() {
  setLeds(0,0,0,0);
  delay(500);
  setLeds(1,1,1,1);
  delay(500);
}
void pattern2() {
  setLeds(0,1,0,1);
  delay(500);
  setLeds(1,0,1,0);
  delay(500);
}
void pattern3() {
  setLeds(1,0,0,0);
  delay(500);
  setLeds(0,1,0,0);
  delay(500);
  setLeds(0,0,1,0);
  delay(500);
  setLeds(0,0,0,1);
  delay(500);
}
void pattern4() {
  setLeds(0,0,1,1);
  delay(500);
  setLeds(1,1,0,0);
  delay(500);
}
void pattern5() {
  setLeds(1,0,0,1);
  delay(500);
  setLeds(0,1,1,0);
  delay(500);
}
void setLeds(int a, int b, int c, int d) {
  digitalWrite(ledPins[0], a);
  digitalWrite(ledPins[1], b);
  digitalWrite(ledPins[2], c);
  digitalWrite(ledPins[3], d);
}



Add a video of the output (know more)