Let's start from a basic example: suppose I have the following list containing $N=8$ non-negative ints:
L = [2, 1, 2, 0, 0, 1, 3, 2]
I want to encode the whole list $L$ into a quantum state $|\psi\rangle$ by using basis encoding as follows:
$$|\psi \rangle = \frac{1}{\sqrt{N}} \sum_{i=0}^{N-1} |L_i\rangle |i\rangle$$
where $|L_i\rangle$ is the $i$-th element in the list, and $|i\rangle$ is its corresponding index (both represented as bit-strings). In this example, I would get an equal superposition of the states $|10\rangle|000\rangle$ ($L_0=2$), $|01\rangle|001\rangle$ ($L_1=1$), and so on until $|10\rangle|111\rangle$ ($L_7=2$).
Is there a way in Qiskit to prepare this state given an arbitrary Python list? And, if not, how could it be implemented?