What is best way to delete all records from any Dev org

It would be pretty straightforward to write a minimum viable batch to clear one table at a time for this scenario:

public class DeleteAllBatch implements Database.Batchable<SObject>
{
    final SObjectType deleteType;
    public DeleteAllBatch(SObjectType deleteType) { this.deleteType = deleteType; }

    public Database.QueryLocator start(Database.BatchableContext context)
    {
        return Database.getQueryLocator('SELECT Id FROM ' + deleteType);
    }
    public void execute(Database.BatchableContext context, List<SObject> scope)
    {
        Database.delete(scope, /*allOrNone*/ false);
    }
    public void finish(Database.BatchableContext context) { }
}

You could extend it to list out multiple types with some minor modifications.

public class DeleteAllBatch implements Database.Batchable<SObject>
{
    final SObjectType deleteType;
    final List<SObjectType> deleteTypes;
    public DeleteAllBatch(List<SObjectType> deleteTypes)
    {
        this.deleteType = deleteTypes.remove(0);
        this.deleteTypes = deleteTypes;
    }

    public Database.QueryLocator start(Database.BatchableContext context) { /*same*/ }
    public void execute(Database.BatchableContext context, List<SObject> scope) { /*same*/ }
    public void finish(Database.BatchableContext context)
    {
        if (!deleteTypes.isEmpty())
            Database.executeBatch(new DeleteAllBatch(deleteTypes));
    }
}

You could use the 'Mass Delete Records' in data management. I have not actually tried out this option hence I am unaware how effective this is.

Alternatively, you could keep apex script ready that can be executed in the developer console. The script will query all records of each object and delete them. This method could be reused whenever required. The only caveat is that you will need to maintain the list of objects whose records you need to delete, in your case all the objects that have records. This is basically a one time activity and you just need to keep updating the list whenever you have a new object under which you have records. You will have to add custom settings too if you interested in deleting them too.

Execute the apex script in developer console execute anonymous. Voila! You have a clean org.

//Suppose your org has only account, contact and lead data
//You will need to maintain the below list
//Add objects to it every time you have a new object
//Compliling it the first time may be a little cumbersome, het BTW reusabile and efficient+fast anyday!!!!
//Keep the list size below 150, to avoid hitting 151 DML governor limit - do it in multiple batches if required
List<String> ObjectList = new List<String>{'Account','Contact','Lead'}; //API NAMES of all objects whose records you want to delete
String QueryConstantString = 'SELECT id FROM ';

for(String obj : ObjectList){
    String queryString = QueryConstantString + obj;
    List<sobject> SObjectList = database.query(queryString);
    delete SObjectList;
}

I haven't really tried out the above code.

PS : Since it is a dev org not expecting many records so as to hit 50000 query rows gov limit. If it happens, need to split it in batches.