Firstly, all the 3 you mentioned are different data types in Python.
String is used to store characters.
List and tuple are used when you want to store heterogenous or homogenous sequence of values. You can store string also inside a list/tuple.
List has to be used when your values keeps on changing because list is mutable.
Tuple has to be used when your values do not change because tuple is immutable.