Here's a list comprehension that will get the job done:
array1 = [1, 2, 3, 4, 5]
array2 = [1, 2]
output_array = [i + 0.1*j for i in array1 for j in array2]
print(output_array)
# prints [1.1, 1.2, 2.1, 2.2, 3.1, 3.2, 4.1, 4.2, 5.1, 5.2]
There may be some clever bit of broadcasting magic that will let you do this with numpy calls in an extremely performant way, but here's a very simple way:
array1 = [1, 2, 3, 4, 5]
array2 = [1, 2]
output_array = np.repeat(array1, 2) + np.tile(array2, 5)*0.1
print(output_array)
# prints [1.1, 1.2, 2.1, 2.2, 3.1, 3.2, 4.1, 4.2, 5.1, 5.2]
Personally I prefer the list comprehension approach, it's cleaner and probably faster
edit: From another person's comment, here's a sweet broadcasting approach:
output_array = (array1[:, None] + array2 / 10).ravel()
output_array = np.array([i + x/10 for i in array1 for x in array2])(array1[:, None] + array2 / 10).ravel()