LOF gives same number of outliers irrespective of parameters
As per sklearn documentation, you have default parameter contamination set at 0.1.

contamination : float in (0., 0.5), optional (default=0.1)
The amount of contamination of the data set, i.e. the proportion of outliers in the data set. When fitting this is used to define the threshold on the decision function.

No matter how many times you will run the algorithm with different n_neighbours, 10% of your dataset will be retained as outliers.
Keep in mind that, when running a LOF, you are first executing a k-nearest-neighbour algorithm, which is dependent of the n_neighbours parameter. You then evaluate the local density of your points (respectively with their nearest neighbours), which returns a numerical value. However, you have yet to decide over which threshold value a point should be considered as outlier, and this is precisely where the contamination parameter intervenes. It allows you to calculate the threshold with respect to the contaminated proportion you have specified.
I suggest you visualize the results of the LOF to determine whether your contamination proportion is relevant, or ought to be adjusted.