$\newcommand{\ket}[1]{|{#1}\rangle}\newcommand{\bra}[1]{\langle{#1}|}$ Si $\boldsymbol{A}$ y $\boldsymbol{B}$ son dos matrices de dimensión $2\times 2$ se tiene que \begin{align*} \boldsymbol{A} \otimes \boldsymbol{B} = \begin{bmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{bmatrix} \otimes \begin{bmatrix} b_{11} & b_{12}\\ b_{21} & b_{22} \end{bmatrix} = \begin{bmatrix} a_{11} b_{11} & a_{11} b_{12} & a_{12} b_{11} & a_{12} b_{12} \\ a_{11} b_{21} & a_{11} b_{22} & a_{12} b_{21} & a_{12} b_{22} \\ a_{21} b_{11} & a_{21} b_{12} & a_{22} b_{11} & a_{22} b_{12} \\ a_{21} b_{21} & a_{21} b_{22} & a_{22} b_{21} & a_{22} b_{22} \end{bmatrix}. \end{align*}
# El comando de numpy que realiza el producto de Kroenecker es kron(A,B):
import numpy as np
A = np.array([[0, 1], [2, 3]])
B = np.array([[10, 11], [12, 13]])
A_kron_B = np.kron(A, B)
print("A =\n", str(A), "\nB =\n", str(B), "\nA ⊗ B =\n", str(A_kron_B))
A = [[0 1] [2 3]] B = [[10 11] [12 13]] A ⊗ B = [[ 0 0 10 11] [ 0 0 12 13] [20 22 30 33] [24 26 36 39]]