Pilas en Python

Hace bastante tiempo que no programo en Python y la verdad es que se me está haciendo dificil. Agradezco de antemano el esfuerzo, creo que seria un buen ejercicio para los aquí presentes en mi situación

Tengo que crear una pila con los libros, ordenados según el orden en que nos proponemos leerlos. En una primera fase se han separado los libros en pilas por 4 temáticas: sci_fi, fantasy, crime_fiction y comics.

Debo crear una única pila con el orden que utilizaremos para leer los libros siguiendo los siguientes criterios:

  1. No queremos leer dos libros de la misma temática seguidos (si se puede evitar)
  2. Se quiere ir leyendo los libros en el siguiente orden de temáticas: sci_fi, crime_fiction, fantasy y comics.
  3. Si nos encontramos con un cómic leeremos dos de seguidos.
  4. Se desea mantener el orden relativo de los libros de cada una de las 4 pilas temáticas. Es decir, si un libro está sobre otro en la pila de ciencia ficción, tendra que seguir estándolo en la pila final.

Las pilas son las siguientes:

#Las siguientes variables muestran el contenido de las 4 pilas temáticas de libros

sci_fi = [“Dune”, “Fahrenheit 451”, “Ender’s Game”, “Hyperion”, “The Foundation Vol.3”, “The Foundation Vol.2”, “The Foundation Vol.1”, “1984”]

crime_fiction = [“Murder of the Orient Express”, “The Cartel”, “The Girl with the Dragon tattoo”, “The Cuckoo’s Calling”, “The Godfather”]

fantasy = [“The Wise Man’s Fear”, “A Clash of Kings”, “Malazan Book of the Fallen”, “The Name of the Wind”, “Lord of the Rings”, “A Game of Thrones”]

comics = [“The Avengers vol. 3”, “Spiderman vol.16”, “Ghost Rider vol.2”, “Spiderman vol. 15”, “John Constantine vol. 5”, “Batman vol. 13”, “Green Arrow vol. 1”]