I am trying to decide which particular algorithm would be most appropriate for my use-case. 

I have dataset of about 1000 physical buildings in a city with feature space such as location, distance, year built and other characteristics etc. For each new data point, a building, I'd like to find 3-5 buildings that are most similar based on feature space comparison. 

I defined similarity as weighted comparison of features. sklearn clustering algorithms create clusters by trying to separate data points into different groups which isn't quite what I am looking for. 

I'd like to iterate over entire feature space (w/ filter like location) and choose 3-5 most similar buildings matching the new building data point. 

Any recommendation for what algorithm might be most appropriate for this or do I need to write my own? I work in python, so prefer a pythonic way of doing this.