Use the mp3_files array with a zero-based index: index 0 is the first file in the list, index 2 the second...index 9 is the last one. As you are not doing so, you have - or at least it should- run 2,3,4,5,6,7,8,9,1,2,3,... File on index 0 is never played. Be aware of subprocess.Popen runs as a child...