Given two samples, return a two-sided permutation-test p-value for the difference in their means.
The on both sides keeps the p-value from ever being exactly zero, which no finite number of shuffles can justify claiming.
Seed np.random.seed(seed) inside solve, immediately before shuffling.
Input
a = [1.0, 2.0, 3.0, 4.0]
b = [3.0, 4.0, 5.0, 6.0]
permutations = 500
seed = 0
Output
0.13972055888223553