With WooCommerce 2.6 you can have different shipping zones,
File that is responsible for zone creation: /woocommerce/includes/class-wc-shipping-zone.php

Here's how to create a shipping zone with php. Make sure the code is executed on or after init action to be sure that all the plugins are fully loaded.

$zone_data = new stdClass();
$zone_data->zone_name = 'New Zone Name';
//$zone_data->zone_id = 12; // uncomment for update

$zone_obj = new WC_Shipping_Zone( $zone_data );
$zone_obj->save();
$zone_id = $zone_obj->get_zone_id();